diff options
author | Micah Anderson <micah@riseup.net> | 2010-09-02 19:04:29 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2010-09-02 19:04:29 -0400 |
commit | 63a16ad8c07e880e68cb7c0a895f7e26ca1434f8 (patch) | |
tree | 1ca7da340aef82e8fe87f44c680cedc93795ecbf /manifests/defines/replace.pp | |
parent | 76b0a31a76b8ab7509da3389379daa24b0610f73 (diff) | |
parent | 51e06fd0d2fa1c8999f328051e5e717bc18e77e7 (diff) | |
download | puppet-common-63a16ad8c07e880e68cb7c0a895f7e26ca1434f8.tar.gz puppet-common-63a16ad8c07e880e68cb7c0a895f7e26ca1434f8.tar.bz2 |
Merge remote branch 'immerda/master'
Conflicts:
lib/puppet/parser/functions/gsub.rb
lib/puppet/parser/functions/prefix_with.rb
lib/puppet/parser/functions/sha1.rb
lib/puppet/parser/functions/slash_escape.rb
lib/puppet/parser/functions/substitute.rb
manifests/classes/lsb_release.pp
manifests/defines/concatenated_file.pp
manifests/defines/config_file.pp
manifests/defines/line.pp
manifests/defines/module_dir.pp
manifests/defines/module_file.pp
manifests/defines/replace.pp
manifests/init.pp
Diffstat (limited to 'manifests/defines/replace.pp')
-rw-r--r-- | manifests/defines/replace.pp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/manifests/defines/replace.pp b/manifests/defines/replace.pp index c9a98bd..f7da3b4 100644 --- a/manifests/defines/replace.pp +++ b/manifests/defines/replace.pp @@ -14,7 +14,7 @@ # # Usage: # -# replace { description: +# replace { description: # file => "filename", # pattern => "regexp", # replacement => "replacement" @@ -23,19 +23,18 @@ # To replace the current port in /etc/munin/munin-node.conf # with a new port, but only disturbing the file when needed: # -# replace { -# set_munin_node_port: -# file => "/etc/munin/munin-node.conf", -# pattern => "^port (?!$port)[0-9]*", -# replacement => "port $port" -# } -define replace($file, $pattern, $replacement) { - $pattern_no_slashes = regsubst($pattern, '/', '\\/', 'G', 'U') - $replacement_no_slashes = regsubst($replacement, '/', '\\/', 'G', 'U') +# replace { set_munin_node_port: +# file => "/etc/munin/munin-node.conf", +# pattern => "^port (?!$port)[0-9]*", +# replacement => "port $port" +# } - 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}/ && ! /\\Q${replacement_no_slashes}\\E/; END { exit \$ret; }' '${file}'", - alias => "exec_$name", - } +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}/ && ! /\\Q${replacement_no_slashes}\\E/; END { exit \$ret; }' '${file}'", + alias => "exec_$name", + } } |