summaryrefslogtreecommitdiff
path: root/manifests/defines/line.pp
blob: 6026a8486483b1c4a8294bce97a9bc964674631a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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 = 'present') {
	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'"
			}
		}
	}
}