db7a27cf5b
Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
36 lines
927 B
Ruby
36 lines
927 B
Ruby
#
|
|
# fact.rb
|
|
#
|
|
|
|
module Puppet::Parser::Functions
|
|
newfunction(:fact, :type => :rvalue, :doc => <<-EOS
|
|
EOS
|
|
) do |arguments|
|
|
|
|
raise(Puppet::ParseError, "fact(): Wrong number of arguments " +
|
|
"given (#{arguments.size} for 1)") if arguments.size < 1
|
|
|
|
fact = arguments[0]
|
|
|
|
unless fact.is_a?(String)
|
|
raise(Puppet::ParseError, 'fact(): Requires fact name to be a string')
|
|
end
|
|
|
|
raise(Puppet::ParseError, 'fact(): You must provide ' +
|
|
'fact name') if fact.empty?
|
|
|
|
result = lookupvar(fact) # Get the value of interest from Facter ...
|
|
|
|
#
|
|
# Now this is a funny one ... Puppet does not have a concept of
|
|
# returning neither undef nor nil back for use within the Puppet DSL
|
|
# and empty string is as closest to actual undef as you we can get
|
|
# at this point in time ...
|
|
#
|
|
result = result.empty? ? '' : result
|
|
|
|
return result
|
|
end
|
|
end
|
|
|
|
# vim: set ts=2 sw=2 et :
|