Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
define source_package ($cfgopts = "", $makeopts = "", $postcmd = ":") { file { "/usr/src/$name": ensure => "directory", recurse => "true", source => "puppet://$server/files/src/$name"; "/usr/src/$name/build.sh": ensure => "present", mode => "755", content => template("build_source_package.sh.erb"); } exec { "/usr/src/$name/build.sh": require => File["/usr/src/$name/build.sh"], onlyif => "/usr/bin/test [ ! -e /usr/src/.$name.built ]"; "$postcmd": command => "/bin/bash -c $postcmd && /usr/bin/touch /usr/src/.$name.postcmd_executed", require => File["/usr/src/$name/build.sh"], onlyif => "/usr/bin/test [ ! -e /usr/src/.$name.postcmd_executed ]"; } } build_source_package.sh.erb: #!/bin/bash pushd /usr/src/<%= name %> ./configure <%= cfgopts %> || exit -1 make clean make || exit -2 <% [ makeopts ].flatten.each_with_index do |opt,index| -%> make <%= opt %> || exit <%= index + 1 %> <% end -%> touch /usr/src/.<%= name %>.built && exit 0 exit 42
This paste will be private.
From the Design Piracy series on my blog: