diff options
-rw-r--r-- | lib/puppet/provider/mailalias/aliases.rb | 2 | ||||
-rw-r--r-- | spec/fixtures/integration/provider/mailalias/aliases/test1 | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/lib/puppet/provider/mailalias/aliases.rb b/lib/puppet/provider/mailalias/aliases.rb index 7ec30b1..16f41ad 100644 --- a/lib/puppet/provider/mailalias/aliases.rb +++ b/lib/puppet/provider/mailalias/aliases.rb @@ -15,7 +15,7 @@ Puppet::Type.type(:mailalias).provide( record_line :aliases, fields: ['name', 'recipient'], separator: %r{\s*:\s*}, block_eval: :instance do def post_parse(record) if record[:recipient] - record[:recipient] = record[:recipient].split(%r{\s*,\s*}).map { |d| d.gsub(%r{^['"]|['"]$}, '') } + record[:recipient] = record[:recipient].split(%r{\s*,\s*(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)}).map { |d| d.gsub(%r{^['"]|['"]$}, '') } end record end diff --git a/spec/fixtures/integration/provider/mailalias/aliases/test1 b/spec/fixtures/integration/provider/mailalias/aliases/test1 index a69be8a..342239d 100644 --- a/spec/fixtures/integration/provider/mailalias/aliases/test1 +++ b/spec/fixtures/integration/provider/mailalias/aliases/test1 @@ -26,6 +26,7 @@ decode: root # Other tests anothertest: "|/path/to/rt-mailgate --queue 'another test' --action correspond --url http://my.com/" test: "|/path/to/rt-mailgate --queue 'test' --action correspond --url http://my.com/" +commas_in_command_test: "|/path/to/rt-mailgate --queue 'test' --action correspond --url http://my.com/ --projects projecta,projectb" # Included file incfile: :include: /tmp/somefile |