diff options
-rw-r--r-- | manifests/defines/line.pp | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/manifests/defines/line.pp b/manifests/defines/line.pp index c055f5b..e5b7fd5 100644 --- a/manifests/defines/line.pp +++ b/manifests/defines/line.pp @@ -4,9 +4,9 @@ # Usage: # line { description: -# file => "filename", -# line => "content", -# ensure => {absent,*present*} +# file => "filename", +# line => "content", +# ensure => {absent,*present*} # } # # Example: @@ -24,19 +24,20 @@ # # define line($file, $line, $ensure = 'present') { - case $ensure { - default : { err ( "unknown ensure value '${ensure}'" ) } - present: { - exec { "echo '${line}' >> '${file}'": - unless => "grep -qFx '${line}' '${file}'" - } - } - absent: { - exec { "perl -ni -e 'print if \$_ ne \"${line}\n\";' '${file}'": - onlyif => "grep -qFx '${line}' '${file}'" - } - } - } + case $ensure { + default : { err ( "unknown ensure value '${ensure}'" ) } + present: { + exec { "echo '${line}' >> '${file}'": + unless => "grep -qFx '${line}' '${file}'" + } + } + absent: { + $subst_line = regsubst($line,'(/|\.)','\\\1','G') + exec { "/bin/sed -i '/${subst_line}/d' '${file}'": + onlyif => "/bin/grep -qFx '${line}' '${file}'" + } + } + } } |