summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAndrew Lubawy <andrew@andrewlubawy.com>2024-06-17 11:56:58 -0700
committerMichael Hoang <enzime@users.noreply.github.com>2024-10-22 16:02:21 +1100
commit2788e4fa981566e34fa40938705cd7f595f05e74 (patch)
tree96787f6e19045d5f96505c0395c6cb0ea62d13a5 /modules
parenta001f44cfc47164839eb61c6b1e7f4288813f7e8 (diff)
Use `sysadminctl` instead of `dscl`
Co-authored-by: Michael Hoang <enzime@users.noreply.github.com>
Diffstat (limited to 'modules')
-rw-r--r--modules/users/default.nix23
1 files changed, 11 insertions, 12 deletions
diff --git a/modules/users/default.nix b/modules/users/default.nix
index cd0986d..ead996c 100644
--- a/modules/users/default.nix
+++ b/modules/users/default.nix
@@ -147,28 +147,28 @@ in
${concatMapStringsSep "\n" (v: ''
${optionalString cfg.forceRecreate ''
- u=$(dscl . -read '/Users/${v.name}' UniqueID 2> /dev/null) || true
- u=''${u#UniqueID: }
+ u=$(id -u '${v.name}' 2> /dev/null) || true
if [[ "$u" -eq ${toString v.uid} ]]; then
echo "deleting user ${v.name}..." >&2
- dscl . -delete '/Users/${v.name}' 2> /dev/null
+ sysadminctl -deleteUser '${v.name}' 2> /dev/null
else
echo "warning: existing user '${v.name}' has unexpected uid $u, skipping..." >&2
fi
''}
- u=$(dscl . -read '/Users/${v.name}' UniqueID 2> /dev/null) || true
- u=''${u#UniqueID: }
+ u=$(id -u '${v.name}' 2> /dev/null) || true
if [[ -n "$u" && "$u" -ne "${toString v.uid}" ]]; then
echo "warning: existing user '${v.name}' has unexpected uid $u, skipping..." >&2
else
if [ -z "$u" ]; then
echo "creating user ${v.name}..." >&2
- dscl . -create '/Users/${v.name}' UniqueID ${toString v.uid}
- dscl . -create '/Users/${v.name}' PrimaryGroupID ${toString v.gid}
+ sysadminctl -addUser '${v.name}' \
+ -UID ${toString v.uid} \
+ -GID ${toString v.gid} \
+ -fullName '${v.description}' \
+ -home '${v.home}' \
+ -shell ${lib.escapeShellArg (shellPath v.shell)}
dscl . -create '/Users/${v.name}' IsHidden ${if v.isHidden then "1" else "0"}
- dscl . -create '/Users/${v.name}' RealName '${v.description}'
- dscl . -create '/Users/${v.name}' NFSHomeDirectory '${v.home}'
${optionalString v.createHome "createhomedir -cu '${v.name}'"}
fi
# Always set the shell path, in case it was updated
@@ -177,12 +177,11 @@ in
'') createdUsers}
${concatMapStringsSep "\n" (name: ''
- u=$(dscl . -read '/Users/${name}' UniqueID 2> /dev/null) || true
- u=''${u#UniqueID: }
+ u=$(id -u '${name}' 2> /dev/null) || true
if [ -n "$u" ]; then
if [ "$u" -gt 501 ]; then
echo "deleting user ${name}..." >&2
- dscl . -delete '/Users/${name}' 2> /dev/null
+ sysadminctl -deleteUser '${name}' 2> /dev/null
else
echo "warning: existing user '${name}' has unexpected uid $u, skipping..." >&2
fi