diff options
| -rw-r--r-- | CHANGELOG | 3 | ||||
| -rw-r--r-- | lib/puppet/modules.rb | 4 | ||||
| -rwxr-xr-x | test/language/parser.rb | 16 |
3 files changed, 21 insertions, 2 deletions
@@ -1,3 +1,6 @@ + Modules no longer return directories in the list of found + manifests (#588). + The crontab provider now defaults to root when there is no USER set in the environment. diff --git a/lib/puppet/modules.rb b/lib/puppet/modules.rb index 5e7868cb5..aa2f75d03 100644 --- a/lib/puppet/modules.rb +++ b/lib/puppet/modules.rb @@ -70,9 +70,9 @@ class Puppet::Module return mod.manifests(pat) else abspat = File::expand_path(pat, cwd) - files = Dir.glob(abspat) + files = Dir.glob(abspat).reject { |f| FileTest.directory?(f) } if files.size == 0 - files = Dir.glob(abspat + ".pp") + files = Dir.glob(abspat + ".pp").reject { |f| FileTest.directory?(f) } end return files end diff --git a/test/language/parser.rb b/test/language/parser.rb index b01720e08..14e27d86b 100755 --- a/test/language/parser.rb +++ b/test/language/parser.rb @@ -747,6 +747,22 @@ file { "/tmp/yayness": parser.parse("$one::two = yay") end end + + # #588 + def test_globbing_with_directories + dir = tempfile + Dir.mkdir(dir) + subdir = File.join(dir, "subdir") + Dir.mkdir(subdir) + file = File.join(dir, "file.pp") + maker = tempfile + File.open(file, "w") { |f| f.puts "file { '#{maker}': ensure => file }" } + + parser = mkparser + assert_nothing_raised("Globbing failed when it matched a directory") do + parser.import("%s/*" % dir) + end + end end # $Id$ |
