summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/provider/sudoers/parsed.rb2
-rw-r--r--spec/unit/provider/sudoers/parsed_spec.rb13
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/puppet/provider/sudoers/parsed.rb b/lib/puppet/provider/sudoers/parsed.rb
index 750d009..9c79788 100644
--- a/lib/puppet/provider/sudoers/parsed.rb
+++ b/lib/puppet/provider/sudoers/parsed.rb
@@ -45,7 +45,7 @@ Puppet::Type.type(:sudoers).provide(
elsif (hash[:line] =~ /^\s*(Defaults\S*)\s*(.*)$/)
Puppet.debug("parsed line as Defaults")
parsed.parse_defaults($1, $2, hash)
- elsif (hash[:line] =~ /^\s*(.*)?=(.*)$/)
+ elsif (hash[:line] =~ /^\s*(.*?)?=(.*)$/)
Puppet.debug("parsed line as User Spec")
parsed.parse_user_spec($1, $2, hash)
else
diff --git a/spec/unit/provider/sudoers/parsed_spec.rb b/spec/unit/provider/sudoers/parsed_spec.rb
index 1bcdfae..ace181e 100644
--- a/spec/unit/provider/sudoers/parsed_spec.rb
+++ b/spec/unit/provider/sudoers/parsed_spec.rb
@@ -115,5 +115,18 @@ describe Puppet::Type.type(:sudoers).provider(:parsed) do
# test to_line
end
+
+ context "failing for commands containing =",:issue => 2 do
+ before do
+ @init_records = {:type => 'user_spec'}
+ end
+
+ it "can parse users and hosts for lines containing =" do
+ line = "root ALL=(ALL) NOPASSWD: /bin/grep --color=auto example /var/log/messages"
+ lambda{
+ @provider.parse_line(line)
+ }.should_not raise_error
+ end
+ end
end