diff options
Diffstat (limited to 'code/environments/production/modules/stdlib/lib/puppet/parser/functions/glob.rb')
-rw-r--r-- | code/environments/production/modules/stdlib/lib/puppet/parser/functions/glob.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/code/environments/production/modules/stdlib/lib/puppet/parser/functions/glob.rb b/code/environments/production/modules/stdlib/lib/puppet/parser/functions/glob.rb new file mode 100644 index 0000000..e9d35b2 --- /dev/null +++ b/code/environments/production/modules/stdlib/lib/puppet/parser/functions/glob.rb @@ -0,0 +1,25 @@ +# +# glob.rb +# +module Puppet::Parser::Functions + newfunction(:glob, :type => :rvalue, :doc => <<-'DOC' + Returns an Array of file entries of a directory or an Array of directories. + Uses same patterns as Dir#glob + DOC + ) do |arguments| + + unless arguments.size == 1 + raise(Puppet::ParseError, 'glob(): Wrong number of arguments given ' \ + "(#{arguments.size} for 1)") + end + + pattern = arguments[0] + + unless pattern.is_a?(String) || pattern.is_a?(Array) + raise(Puppet::ParseError, 'glob(): Requires either array or string ' \ + 'to work') + end + + Dir.glob(pattern) + end +end |