diff options
author | Ciprian Badescu <ciprian.badescu@puppet.com> | 2020-02-07 17:57:42 +0200 |
---|---|---|
committer | Ciprian Badescu <ciprian.badescu@puppet.com> | 2020-02-10 11:03:58 +0200 |
commit | 3d6fe1fdc6fedaa96839a4cb74a5beba212ec34e (patch) | |
tree | d456bf6334b0c1af3813d29dc5d6e7d400f1b2cc | |
parent | 1c7e8bcc01ef3d0a3d529524ca34bd8a0556f7ee (diff) | |
download | puppet-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.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 |