diff --git a/manifests/postfix/sender.pp b/manifests/postfix/sender.pp index a60f7214793b1b3f80df839cfc934b8e40a6b239..e0fb9c6613c4f6e577fe7abecb129b0c99980c29 100644 --- a/manifests/postfix/sender.pp +++ b/manifests/postfix/sender.pp @@ -21,26 +21,26 @@ define base::postfix::sender( $file = '/etc/postfix/senders' ) { $pattern = "'^${name}'" + $line = "${name} ${ensure}" + $file_line_ensure = $ensure ? { + 'absent' => 'absent', + default => 'present', + } + + file_line { "add-sender-${name}": + ensure => $file_line_ensure, + path => $file, + line => $line, + require => Package['postfix'], + notify => Exec["postmap hash:${file}"], + } + case $ensure { - 'absent': { - exec { "rm-sender-${name}": - command => "sed -i -e '/^${name}/d' ${file}", - onlyif => "grep ${pattern} ${file}", - notify => Exec["postmap hash:${file}"] - } - } default: { - $line = "${name} ${ensure}" - exec { "add-sender-${name}": - command => "echo '${line}' >> ${file}", - unless => "grep ${pattern} ${file}", - require => Package['postfix'], - notify => Exec["postmap hash:${file}"], - } exec { "fix-sender-${name}": command => "sed -i -e 's/^${name}..*\$/${line}/' ${file}", unless => "grep '^${line}\$' ${file}", - require => Exec["add-sender-${name}"], + require => File_line["add-sender-${name}"], notify => Exec["postmap hash:${file}"], } }