]> gitweb.fluxo.info Git - puppet-common.git/commitdiff
common: minor improvements to config_file, replace and line
authorroot <root@puppetmaster.black.co.at>
Tue, 13 Nov 2007 09:44:07 +0000 (10:44 +0100)
committerroot <root@puppetmaster.black.co.at>
Tue, 13 Nov 2007 09:44:07 +0000 (10:44 +0100)
manifests/defines/config_file.pp
manifests/defines/line.pp
manifests/defines/replace.pp

index 6188ac48f44c332399676cc85de197c4fe73a4f2..c57c9a3bd4535d56c5af79ffec9b94b6a2300c18 100644 (file)
 #              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 } }
+       }
+                               
 }
 
 
index 4cf8fbac20ba87004b7e69c6893ac215d57b849d..3f7c4c0748880c9dc120a2806838ba9d4c0c9d75 100644 (file)
@@ -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}'"
                        }
                }
        }
index d1c7496dd6a0843d9558b7d4ded4925e097999ca..c13325e6540041f4a4c8a9719fb4eea1128e6b4c 100644 (file)
@@ -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",
        }
 }