# 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
# really detect changes to this file
checksum => md5,
}
+
+ case $content {
+ '': {
+ case $source {
+ '': { }
+ default: { File[$name] { source => $source } }
+ }
+ }
+ default: { File[$name] { content => $content } }
+ }
+
}
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}'"
}
}
}
$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",
}
}