Report abuse

custom/manifest/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;
        }
}

# This define is sick and wrong.
# It is a recursive-to-/tmp/puppet 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"];
        }
}

custom/template/mkdir.erb:

<% require 'ftools' -%>
<% File.dirname(title).each do |chunk| -%>
<%= chunk -%>
<% end -%>