aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/provider/mailalias/aliases.rb2
-rw-r--r--spec/fixtures/integration/provider/mailalias/aliases/test11
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