diff options
-rw-r--r-- | modules/base/functions/home.pp | 6 | ||||
-rw-r--r-- | modules/base/manifests/user.pp | 29 | ||||
-rw-r--r-- | modules/conf/manifests/user.pp | 24 | ||||
-rw-r--r-- | modules/package/manifests/cargo.pp | 10 |
4 files changed, 27 insertions, 42 deletions
diff --git a/modules/base/functions/home.pp b/modules/base/functions/home.pp new file mode 100644 index 0000000..fd2f73e --- /dev/null +++ b/modules/base/functions/home.pp @@ -0,0 +1,6 @@ +function base::home(String $user) >> String { + $user ? { + 'root' => '/root', + default => "/home/$user", + } +} diff --git a/modules/base/manifests/user.pp b/modules/base/manifests/user.pp index b75f445..c532bc0 100644 --- a/modules/base/manifests/user.pp +++ b/modules/base/manifests/user.pp @@ -2,18 +2,11 @@ define base::user( $pwhash, $user=$name, $group=$user, - $home=undef, $extra_groups=[], $homedir_mode='0700', $shell='/usr/bin/zsh', ) { - $_home = $home ? { - undef => $user ? { - 'root' => '/root', - default => "/home/$user", - }, - default => $home, - } + $home = base::home($user) group { $group: ensure => present; @@ -23,14 +16,14 @@ define base::user( ensure => 'present', gid => $group, groups => $extra_groups, - home => $_home, + home => $home, shell => $shell, password => $pwhash, require => Group[$group]; } file { - $_home: + $home: ensure => 'directory', owner => $user, group => $group, @@ -39,7 +32,7 @@ define base::user( User[$user], Group[$group], ]; - "${_home}/coding": + "${home}/coding": ensure => 'directory', owner => $user, group => $group, @@ -47,7 +40,7 @@ define base::user( require => [ User[$user], Group[$group], - File[$_home], + File[$home], ]; } @@ -75,7 +68,7 @@ define base::user( User[$user], Group[$group], ]; - "${_home}/.cargo": + "${home}/.cargo": ensure => link, target => "$persistent_data/cargo/${user}", owner => $user, @@ -83,9 +76,9 @@ define base::user( require => [ User[$user], Group[$group], - File["${_home}"], + File["${home}"], ]; - "${_home}/.rustup": + "${home}/.rustup": ensure => link, target => "$persistent_data/rustup/${user}", owner => $user, @@ -93,14 +86,14 @@ define base::user( require => [ User[$user], Group[$group], - File["${_home}"], + File["${home}"], ]; } - File["${_home}/.rustup"] -> Rust::User[$user] + File["${home}/.rustup"] -> Rust::User[$user] File["$persistent_data/rustup/${user}"] -> Rust::User[$user] - File["${_home}/.cargo"] -> Package::Cargo<| |> + File["${home}/.cargo"] -> Package::Cargo<| |> File["$persistent_data/cargo/${user}"] -> Package::Cargo<| |> } diff --git a/modules/conf/manifests/user.pp b/modules/conf/manifests/user.pp index 564f121..4ca2f02 100644 --- a/modules/conf/manifests/user.pp +++ b/modules/conf/manifests/user.pp @@ -1,11 +1,5 @@ -define conf::user($user=$name, $home=undef) { - $_home = $home ? { - undef => $user ? { - 'root' => '/root', - default => "/home/$user", - }, - default => $home, - } +define conf::user($user=$name) { + $home = base::home($user) include conf @@ -21,11 +15,11 @@ define conf::user($user=$name, $home=undef) { exec { "git clone doy/conf for $user": command => "/usr/bin/git clone git://github.com/doy/conf", user => $user, - cwd => $_home, - creates => "$_home/conf", + cwd => $home, + creates => "$home/conf", require => [ User[$user], - File[$_home], + File[$home], Class['git'], ]; } @@ -33,12 +27,12 @@ define conf::user($user=$name, $home=undef) { exec { "conf make install for $user": command => "/usr/bin/make install", user => $user, - cwd => "$_home/conf", + cwd => "$home/conf", environment => [ - "HOME=$_home", - "PWD=$_home/conf", + "HOME=$home", + "PWD=$home/conf", ], - creates => "$_home/.vimrc", + creates => "$home/.vimrc", require => [ Class['cron'], Class['c_toolchain'], diff --git a/modules/package/manifests/cargo.pp b/modules/package/manifests/cargo.pp index c698ba3..f24e06c 100644 --- a/modules/package/manifests/cargo.pp +++ b/modules/package/manifests/cargo.pp @@ -1,12 +1,4 @@ -define package::cargo($package, $user, $ensure, $home=undef) { - $_home = $home ? { - undef => $user ? { - 'root' => '/root', - default => "/home/$user", - }, - default => $home, - } - +define package::cargo($package, $user, $ensure) { case $ensure { 'installed': { exec { "cargo install $package for $user": |