aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCiprian Badescu <ciprian.badescu@puppet.com>2020-02-07 17:57:42 +0200
committerCiprian Badescu <ciprian.badescu@puppet.com>2020-02-10 11:03:58 +0200
commit3d6fe1fdc6fedaa96839a4cb74a5beba212ec34e (patch)
treed456bf6334b0c1af3813d29dc5d6e7d400f1b2cc
parent1c7e8bcc01ef3d0a3d529524ca34bd8a0556f7ee (diff)
downloadpuppet-mailalias_core-3d6fe1fdc6fedaa96839a4cb74a5beba212ec34e.tar.gz
puppet-mailalias_core-3d6fe1fdc6fedaa96839a4cb74a5beba212ec34e.tar.bz2
(MODULES-7202) fixes comma handling in value
regular expression that we use to separate values by comma was updated to take into account only commas outside quoted strings
-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