diff options
author | mh <mh@immerda.ch> | 2010-01-09 14:23:03 +0100 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2010-09-02 18:14:15 -0400 |
commit | b4ce2e8769aaee3e5c65f059a7056d956c6c3842 (patch) | |
tree | 48040ec6fd0badf3a6516f4ac77816a9aa89714f | |
parent | 75f88ffda0e3f2128ed4108d3ed0035c48f00c5b (diff) | |
download | puppet-common-b4ce2e8769aaee3e5c65f059a7056d956c6c3842.tar.gz puppet-common-b4ce2e8769aaee3e5c65f059a7056d956c6c3842.tar.bz2 |
make the removal of line safer
-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}'" + } + } + } } |