summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
authorroot <root@puppetmaster.black.co.at>2007-11-13 10:44:07 +0100
committerroot <root@puppetmaster.black.co.at>2007-11-13 10:44:07 +0100
commit9d7a47506c6d824d254774f2c7828e8cb65e236f (patch)
tree3e8d1711b596671de8065592b50138ba4f22c6de /manifests
parent76483492e6e307e0591a45e87f8370e58d340529 (diff)
common: minor improvements to config_file, replace and line
Diffstat (limited to 'manifests')
-rw-r--r--manifests/defines/config_file.pp14
-rw-r--r--manifests/defines/line.pp4
-rw-r--r--manifests/defines/replace.pp4
3 files changed, 16 insertions, 6 deletions
diff --git a/manifests/defines/config_file.pp b/manifests/defines/config_file.pp
index 6188ac4..c57c9a3 100644
--- a/manifests/defines/config_file.pp
+++ b/manifests/defines/config_file.pp
@@ -27,10 +27,9 @@
# notify => Exec["reload-apache2"]
# }
-define config_file ($content, $ensure = 'present') {
+define config_file ($content = '', $source = '', $ensure = 'present') {
file { $name:
ensure => $ensure,
- content => $content,
# keep old versions on the server
backup => server,
# default permissions for config files
@@ -38,6 +37,17 @@ define config_file ($content, $ensure = 'present') {
# really detect changes to this file
checksum => md5,
}
+
+ case $content {
+ '': {
+ case $source {
+ '': { }
+ default: { File[$name] { source => $source } }
+ }
+ }
+ default: { File[$name] { content => $content } }
+ }
+
}
diff --git a/manifests/defines/line.pp b/manifests/defines/line.pp
index 4cf8fba..3f7c4c0 100644
--- a/manifests/defines/line.pp
+++ b/manifests/defines/line.pp
@@ -28,12 +28,12 @@ define line($file, $line, $ensure = 'present') {
default : { err ( "unknown ensure value '${ensure}'" ) }
present: {
exec { "/bin/echo '${line}' >> '${file}'":
- unless => "/bin/grep -Fx '${line}' '${file}'"
+ unless => "/bin/grep -qFx '${line}' '${file}'"
}
}
absent: {
exec { "/usr/bin/perl -ni -e 'print unless /^\\Q${line}\\E\$/' '${file}'":
- onlyif => "/bin/grep -Fx '${line}' '${file}'"
+ onlyif => "/bin/grep -qFx '${line}' '${file}'"
}
}
}
diff --git a/manifests/defines/replace.pp b/manifests/defines/replace.pp
index d1c7496..c13325e 100644
--- a/manifests/defines/replace.pp
+++ b/manifests/defines/replace.pp
@@ -23,8 +23,8 @@ define replace($file, $pattern, $replacement) {
$pattern_no_slashes = slash_escape($pattern)
$replacement_no_slashes = slash_escape($replacement)
exec { "replace_${pattern}_${file}":
- command => "/usr/bin/perl -pi -e 's/$pattern_no_slashes/$replacement_no_slashes/' '$file'",
- onlyif => "/usr/bin/perl -ne 'BEGIN { \$ret = 1; } \$ret = 0 if /$pattern_no_slashes/; END { exit \$ret; }' '$file'",
+ command => "/usr/bin/perl -pi -e 's/${pattern_no_slashes}/${replacement_no_slashes}/' '${file}'",
+ onlyif => "/usr/bin/perl -ne 'BEGIN { \$ret = 1; } \$ret = 0 if /${pattern_no_slashes}/ && ! /\\Q${replacement_no_slashes}\\E/; END { exit \$ret; }' '${file}'",
alias => "exec_$name",
}
}