node default {
include a
include b
}
class a {
$dirs = ""
notice("class A")
dir{["/tmp","/tmp/a","/tmp/b"]: before => File["/tmp/dirs"]}
}
class b {
notice("template")
file{"/tmp/dirs": content => template("/tmp/dirs.erb")}
}
define dir() {
notice("define")
$a::dirs += " $name"
file {$name: ensure => directory }
}
output:
notice: Scope(Class[a]): class A
notice: Scope(Class[b]): template
notice: Scope(Dir[/tmp/b]): define
notice: Scope(Dir[/tmp/a]): define
notice: Scope(Dir[/tmp]): define
notice: //Node[default]/b/File[/tmp/dirs]: Filebucketed to with sum dd50ac53127aa2f3578835acc1415712
notice: //Node[default]/b/File[/tmp/dirs]/content: content changed '{md5}dd50ac53127aa2f3578835acc1415712' to '{md5}68b329da9893e34099c7d8ad5cb9c940'
template:
dirs.erb
<%= scope.lookupvar("a::dirs") %>