fuel-library/deployment/puppet/tweaks/lib/puppet/parser/functions/is_pkg_installed.rb

23 lines
589 B
Ruby

module Puppet::Parser::Functions
newfunction(:is_pkg_installed,
:type => :rvalue,
:arity => 1,
:doc => <<-'ENDOFDOC'
Returns if given package is installed
ENDOFDOC
) do |args|
begin
pkg_name = args[0]
parameters = { :name => pkg_name }
res = Puppet::Type.type(:package).new(parameters)
query = res.provider.query
break false unless query.is_a? Hash
break false unless query[:ensure]
break false if [ :absent, :purged ].include? query[:ensure]
true
rescue
false
end
end
end