rendered paste body# 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