summaryrefslogtreecommitdiff
path: root/lib/puppet/parser/functions/glob.rb
blob: 54cdda61d0cd78cbd3fc2a6e5edf7742b8fa67ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#
#  glob.rb
#

module Puppet::Parser::Functions
  newfunction(:glob, :type => :rvalue, :doc => <<-'EOS'
    Returns an Array of file entries of a directory or an Array of directories.
    Uses same patterns as Dir#glob
    EOS
  ) do |arguments|

    raise(Puppet::ParseError, "glob(): Wrong number of arguments given " +
      "(#{arguments.size} for 1)") unless arguments.size == 1

    pattern = arguments[0]

    raise(Puppet::ParseError, 'glob(): Requires either array or string ' +
      'to work') unless pattern.is_a?(String) || pattern.is_a?(Array)

    Dir.glob(pattern)
  end
end