diff options
| author | David Lutterkort <lutter@redhat.com> | 2009-06-01 13:47:19 -0700 |
|---|---|---|
| committer | James Turnbull <james@lovedthanlost.net> | 2009-06-03 23:34:54 +1000 |
| commit | d322329ab671656b072cceb5aef8e3634e0fb2b1 (patch) | |
| tree | 1ee58678c299bc4ebc01eaf86a544f6f20232a3c | |
| parent | 9735c5055cbb267e740838cd50b2205b87fffe57 (diff) | |
| download | puppet-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.rb | 2 | ||||
| -rw-r--r-- | spec/unit/provider/augeas/augeas.rb | 7 |
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 |
