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 inPuppet::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.
