summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Lutterkort <lutter@redhat.com>2009-06-01 13:47:19 -0700
committerJames Turnbull <james@lovedthanlost.net>2009-06-03 23:34:54 +1000
commitd322329ab671656b072cceb5aef8e3634e0fb2b1 (patch)
tree1ee58678c299bc4ebc01eaf86a544f6f20232a3c
parent9735c5055cbb267e740838cd50b2205b87fffe57 (diff)
downloadpuppet-d322329ab671656b072cceb5aef8e3634e0fb2b1.tar.gz
puppet-d322329ab671656b072cceb5aef8e3634e0fb2b1.tar.xz
puppet-d322329ab671656b072cceb5aef8e3634e0fb2b1.zip
* provider/augeas: allow escaped whitespace and brackets in paths
-rw-r--r--lib/puppet/provider/augeas/augeas.rb2
-rw-r--r--spec/unit/provider/augeas/augeas.rb7
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/puppet/provider/augeas/augeas.rb b/lib/puppet/provider/augeas/augeas.rb
index de52c1292..b65a41e78 100644
--- a/lib/puppet/provider/augeas/augeas.rb
+++ b/lib/puppet/provider/augeas/augeas.rb
@@ -80,7 +80,7 @@ Puppet::Type.type(:augeas).provide(:augeas) do
start = sc.pos
nbracket = 0
begin
- sc.skip(/[^\]\[\s]+/)
+ sc.skip(/([^\]\[\s\\]|\\.)+/)
ch = sc.getch
nbracket += 1 if ch == "["
nbracket -= 1 if ch == "]"
diff --git a/spec/unit/provider/augeas/augeas.rb b/spec/unit/provider/augeas/augeas.rb
index c8b370f12..30d9bc10e 100644
--- a/spec/unit/provider/augeas/augeas.rb
+++ b/spec/unit/provider/augeas/augeas.rb
@@ -119,6 +119,13 @@ describe provider_class do
tokens = @provider.parse_commands("set /foo \"''\\\"''\"")
tokens.should == [[ "set", "/foo", "''\\\"''" ]]
end
+
+ it "should allow escaped spaces and brackets in paths" do
+ @resource.stubs(:[]).returns("/foo/")
+ args = [ "set", "/white\\ space/\\[section", "value" ]
+ tokens = @provider.parse_commands(args.join(" \t "))
+ tokens.should == [ args ]
+ end
end
describe "get filters" do