Update stdlib and concat to 6.1.0 both
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / glob.rb
1 #
2 #  glob.rb
3 #
4 module Puppet::Parser::Functions
5   newfunction(:glob, :type => :rvalue, :doc => <<-DOC
6     @summary
7       Uses same patterns as Dir#glob.
8
9     @return
10       Returns an Array of file entries of a directory or an Array of directories.
11
12     @example Example Usage:
13       $confs = glob(['/etc/**/*.conf', '/opt/**/*.conf'])
14     DOC
15              ) do |arguments|
16
17     unless arguments.size == 1
18       raise(Puppet::ParseError, 'glob(): Wrong number of arguments given ' \
19         "(#{arguments.size} for 1)")
20     end
21
22     pattern = arguments[0]
23
24     unless pattern.is_a?(String) || pattern.is_a?(Array)
25       raise(Puppet::ParseError, 'glob(): Requires either array or string ' \
26         'to work')
27     end
28
29     Dir.glob(pattern)
30   end
31 end