Please review pull request #630: (#13649) Restrict module name matching opened by (kelseyhightower)

Description:

Before this patch the regex used to match valid module names in
Puppet::Node::Environment#modules_by_path matches invalid module
names.

This patch replaces the current regex pattern with one more accurate.
This patch also includes updated specs to cover this change in behavior.

  • Opened: Thu Apr 05 15:59:48 UTC 2012
  • Based on: puppetlabs:2.7.x (d88f3e7c387eff270101604f2fec2e086f88ebdd)
  • Requested merge: kelseyhightower:ticket/2.7.x/13649_restrict_module_matching (e7d39119b3f97a23da0fb4949b02d99f7b9233a8)

Diff follows:

diff --git a/lib/puppet/node/environment.rb b/lib/puppet/node/environment.rb
index b16d151..e09931d 100644
--- a/lib/puppet/node/environment.rb
+++ b/lib/puppet/node/environment.rb
@@ -128,7 +128,7 @@ def modules_by_path
     modulepath.each do |path|
       Dir.chdir(path) do
         module_names = Dir.glob('*').select do |d|
-          FileTest.directory?(d) && (File.basename(d) =~ /^[-\w]+$/)
+          FileTest.directory?(d) && (File.basename(d) =~ /^[\w]+([-]{1}[\w]+)*$/)
         end
         modules_by_path[path] = module_names.sort.map do |name|
           Puppet::Module.new(name, :environment => self, :path => File.join(path, name))
diff --git a/spec/unit/node/environment_spec.rb b/spec/unit/node/environment_spec.rb
index 62aef59..4b25599 100755
--- a/spec/unit/node/environment_spec.rb
+++ b/spec/unit/node/environment_spec.rb
@@ -216,6 +216,9 @@
           FileUtils.mkdir_p(File.join(@first, 'foo=bar'))
           FileUtils.mkdir_p(File.join(@first, 'foo bar'))
           FileUtils.mkdir_p(File.join(@first, 'foo.bar'))
+          FileUtils.mkdir_p(File.join(@first, '-foo'))
+          FileUtils.mkdir_p(File.join(@first, 'foo-'))
+          FileUtils.mkdir_p(File.join(@first, 'foo--bar'))
 
           env.modules_by_path[@first].collect{|mod| mod.name}.sort.should == %w{foo foo-bar foo2 foo_bar}
         end

    

--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to