diff options
author | intrigeri <intrigeri@boum.org> | 2010-12-11 13:15:33 +0100 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2010-12-11 13:15:33 +0100 |
commit | 1f1e5599b7a527b9889b5d2c8a92df8b2916cde7 (patch) | |
tree | 04edffd598bc3df9655b2e4981d9a348be6f4812 /manifests | |
parent | 001bbc5ff82337e6ddc7b13fb337b43ed36d2dee (diff) | |
parent | a81984c77ed1efb56e978d8b5050b6c3ec409d80 (diff) | |
download | puppet-common-1f1e5599b7a527b9889b5d2c8a92df8b2916cde7.tar.gz puppet-common-1f1e5599b7a527b9889b5d2c8a92df8b2916cde7.tar.bz2 |
Merge remote branch 'shared/master'
Conflicts:
lib/puppet/parser/functions/split.rb
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/defines/concatenated_file.pp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/manifests/defines/concatenated_file.pp b/manifests/defines/concatenated_file.pp index 491e2c8..5f1c275 100644 --- a/manifests/defines/concatenated_file.pp +++ b/manifests/defines/concatenated_file.pp @@ -28,6 +28,7 @@ # dir => "/etc/some.conf.d", # } define concatenated_file ( + $ensure = 'present', # where the snippets are located $dir = '', # a file with content to prepend @@ -50,6 +51,10 @@ define concatenated_file ( } else { file { $dir_real: + ensure => $ensure ? { + 'present' => directory, + default => $ensure + }, source => "puppet:///modules/common/empty", checksum => mtime, ignore => '.ignore', @@ -61,40 +66,41 @@ define concatenated_file ( file { $tmp_file: - ensure => present, checksum => md5, + ensure => $ensure, checksum => md5, mode => $mode, owner => $owner, group => $group; # decouple the actual file from the generation process by using a # temporary file and puppet's source mechanism. This ensures that events # for notify/subscribe will only be generated when there is an actual # change. $name: - ensure => present, checksum => md5, + ensure => $ensure, checksum => md5, source => $tmp_file, mode => $mode, owner => $owner, group => $group, require => File[$tmp_file]; } - # if there is a header or footer file, add it - $additional_cmd = $header ? { + if $ensure == 'present' { + # if there is a header or footer file, add it + $additional_cmd = $header ? { '' => $footer ? { - '' => '', - default => "| cat - '${footer}' " + '' => '', + default => "| cat - '${footer}' " }, default => $footer ? { - '' => "| cat '${header}' - ", - default => "| cat '${header}' - '${footer}' " + '' => "| cat '${header}' - ", + default => "| cat '${header}' - '${footer}' " } - } + } - # use >| to force clobbering the target file - exec { "concat_${name}": + # use >| to force clobbering the target file + exec { "concat_${name}": command => "/usr/bin/find ${dir_real} -maxdepth 1 -type f ! -name '*puppettmp' -print0 | sort -z | xargs -0 cat ${additional_cmd} >| ${tmp_file}", subscribe => [ File[$dir_real] ], before => File[$tmp_file], alias => [ "concat_${dir_real}"], loglevel => info + } } - } |