From b089e7e7266403ddda9f96bfd8c5adf9a0f0f6b5 Mon Sep 17 00:00:00 2001 From: Michael Hoang Date: Thu, 24 Oct 2024 18:30:55 +1100 Subject: [PATCH] users: switch back to using `dscl` for deleting users The previous default behaviour when nix-darwin deletes users is that their home directories are left intact, however as the `-keepHome` flag for `sysadminctl -deleteUser` is broken, we'll need to switch back for now. --- modules/users/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/users/default.nix b/modules/users/default.nix index 9227080d..0cb43503 100644 --- a/modules/users/default.nix +++ b/modules/users/default.nix @@ -189,8 +189,10 @@ in requireFDA "$1" deleted - sysadminctl -deleteUser "$1" 2> /dev/null + dscl . -delete "/Users/$1" 2> /dev/null + # `dscl . -delete` should exit with a non-zero exit code when there's an error, but we'll leave + # this code here just in case and for when we switch to `sysadminctl -deleteUser` # We need to check as `sysadminctl -deleteUser` still exits with exit code 0 when there's an error if id "$1" &> /dev/null; then printf >&2 '\e[1;31merror: failed to delete user %s, aborting activation\e[0m\n', "$1"