summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2018-11-15 23:44:28 -0500
committerJesse Luehrs <doy@tozt.net>2018-11-15 23:44:28 -0500
commitb7fae4bde557809f0ea9bc6552e1932afd857d63 (patch)
tree2eb73bb2069cfaa55e04ca3354c32acc42e69cc5
parent08318e4bb85b5e4afca1886c9c7482f02460f12f (diff)
downloadpuppet-tozt-b7fae4bde557809f0ea9bc6552e1932afd857d63.tar.gz
puppet-tozt-b7fae4bde557809f0ea9bc6552e1932afd857d63.zip
simplify home directory handling
-rw-r--r--modules/base/functions/home.pp6
-rw-r--r--modules/base/manifests/user.pp29
-rw-r--r--modules/conf/manifests/user.pp24
-rw-r--r--modules/package/manifests/cargo.pp10
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":