b9f1bb6a63
This function aborts catalog compilation if any of the passed values are not true or false. Note, this catches the string values of true and false correct and will abort catalog compilation if they are not boolean values. Paired-with: Dan Bode <dan@puppetlabs.com>
39 lines
1,023 B
Ruby
39 lines
1,023 B
Ruby
module Puppet::Parser::Functions
|
|
|
|
newfunction(:validate_bool, :doc => <<-'ENDHEREDOC') do |args|
|
|
Validate all passed values are true or false. Abort catalog compilation if the
|
|
value does not pass the check.
|
|
|
|
Example:
|
|
|
|
These booleans validate
|
|
|
|
$iamtrue = true
|
|
validate_bool(true)
|
|
validate_bool(true, true, false, $iamtrue)
|
|
|
|
These strings do NOT validate and will abort catalog compilation
|
|
|
|
$some_array = [ true ]
|
|
validate_bool("false")
|
|
validate_bool("true")
|
|
validate_bool($some_array)
|
|
|
|
* Jeff McCune <jeff@puppetlabs.com>
|
|
* Dan Bode <dan@puppetlabs.com>
|
|
|
|
ENDHEREDOC
|
|
|
|
unless args.length > 0 then
|
|
raise Puppet::ParseError, ("validate_bool(): wrong number of arguments (#{args.length}; must be > 0)")
|
|
end
|
|
|
|
args.each do |arg|
|
|
unless (arg.is_a?(TrueClass) || arg.is_a?(FalseClass))
|
|
raise Puppet::ParseError, ("#{arg.inspect} is not a boolean. It looks to be a #{arg.class}")
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
end
|