All pastes #95134 Raw Edit

Luke Kanies

public text v1 · immutable
#95134 ·published 2006-07-21 19:29 UTC
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