From b4ce2e8769aaee3e5c65f059a7056d956c6c3842 Mon Sep 17 00:00:00 2001 From: mh Date: Sat, 9 Jan 2010 14:23:03 +0100 Subject: make the removal of line safer --- manifests/defines/line.pp | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'manifests') 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}'" + } + } + } } -- cgit v1.2.3