# manage my symlink for my profile with puppet + SVN $base = "etc" define homedir(dirmode) { case $home { "": { exec { "nohome": command => "/bin/echo No home variable", logoutput => true } } default: { file { "$home/.$name": mode => $dirmode, ensure => directory } file { "$home/.$name/$name.log": mode => 644, ensure => file, require => file["$home/.$name"] } } } } define homelink(ensure, hostspecific = false) { case $home { "": { exec { "nohome": command => "/bin/echo No home variable", logoutput => true } } default: { $ensurelink = $hostspecific ? { false => "$ensure", true => $hostname ? { host1 => "$ensure.$hostname", host2 => "$ensure.$hostname", default => "$ensure" } } file { "$home/$name": ensure => "$ensurelink", } } } } class profile { homelink { ".procmailrc": ensure => "$base/procmailrc", hostspecific => true, before => homedir["procmail"]; } homedir { "test1": dirmode => 750; "procmail": dirmode => 750 } } include profile