diff options
Diffstat (limited to 'manifests/defines/line.pp')
-rw-r--r-- | manifests/defines/line.pp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/manifests/defines/line.pp b/manifests/defines/line.pp new file mode 100644 index 0000000..2d2e886 --- /dev/null +++ b/manifests/defines/line.pp @@ -0,0 +1,27 @@ +# common/manifests/defines/line.pp -- a trivial puppet lined +# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at> +# See LICENSE for the full license granted to you. + +# Usage: +# line { description: +# file => "filename", +# line => "content", +# ensure => {absent,present} +# } +define line($file, $line, $ensure) { + case $ensure { + default : { err ( "unknown ensure value $ensure" ) } + present: { + exec { "/bin/echo '$line' >> '$file'": + unless => "/bin/grep -Fx '$line' '$file'" + } + } + absent: { + exec { "/usr/bin/perl -ni -e 'print unless /^\\Q$line\\E$/' '$file'": + onlyif => "/bin/grep -Fx '$line' '$file'" + } + } + } +} + + |