Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
modules/custom/manifests/init.pp class custom { # This just does some prep work for the defines below file { "/tmp/puppet": ensure => directory, mode => 700, owner => root, group => root; } exec { "cleanup /tmp/puppet": path => "/bin/", cwd => "/tmp", command => "rm -rf puppet", require => File["/tmp/puppet"], unless => "/usr/bin/test -e /tmp/debug-concat_file"; } } # This define is sick and wrong. # It is a recursive-to-/ file { ensure => directory } define mkdir () { $parent = template("custom/mkdir.erb") if !defined(Mkdir["$parent"]) and $parent != "/tmp/puppet" { mkdir { "$parent": } } file { "$name": ensure => directory, owner => root, group => root, mode => 400, require => File["$parent"]; } } define concat_file ( $ensure = present, $mode = 0644, $owner = root, $group = root ) { include custom $file = "/tmp/puppet/${name}" $dir = "/tmp/puppet/${name}.d" $parent = template("custom/mkdir.erb") mkdir { "$dir": } # Make sure there's something, even if empty file { "${dir}/__nonempty__": owner => root, group => root, mode => 400, ensure => present, content => '', require => File["${dir}"]; } exec { "concat_file_${name}": path => ["/bin", "/usr/bin"], cwd => $parent, command => "cat $dir/* >| $file", require => File["${dir}/__nonempty__"]; } file { "${name}": ensure => $ensure, owner => $owner, group => $group, mode => $mode, source => $file, require => Exec["concat_file_${name}"], before => Exec["cleanup /tmp/puppet"]; } } define concat_file_chunk ( $file, $priority = "50", $content = "" ) { file { "/tmp/puppet/${file}.d/${priority}-${title}": ensure => present, owner => root, group => root, mode => 400, content => "$content", before => Exec["concat_file_${file}"], require => File["/tmp/puppet/${file}.d"]; } }
This paste will be private.
From the Design Piracy series on my blog: