home-manager: avoid running empty nix profile remove

We only want to run `nix profile remove` if there is actually anything
to remove.
This commit is contained in:
Robert Helgesson 2024-01-22 22:40:55 +01:00
parent 4256729006
commit 190c6f4609
No known key found for this signature in database
GPG key ID: 96E745BD17AA17ED
2 changed files with 2 additions and 2 deletions

View file

@ -268,7 +268,7 @@ in
# `nix profile remove '.*' --profile "$genProfilePath"` was not working, so here is a workaround:
nix profile list --profile "$genProfilePath" \
| cut -d ' ' -f 4 \
| xargs -t $DRY_RUN_CMD nix profile remove $VERBOSE_ARG --profile "$genProfilePath"
| xargs -rt $DRY_RUN_CMD nix profile remove $VERBOSE_ARG --profile "$genProfilePath"
run nix profile install $VERBOSE_ARG --profile "$genProfilePath" "$newGenPath"
else
run nix-env $VERBOSE_ARG --profile "$genProfilePath" --set "$newGenPath"

View file

@ -112,7 +112,7 @@ function nixProfileRemove() {
# nix-darwin and won't require uninstalling `home-manager-path`.
if [[ -e $HOME/.nix-profile/manifest.json \
|| -e ${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile/manifest.json ]] ; then
nixProfileList "$1" | xargs -t $DRY_RUN_CMD nix profile remove $VERBOSE_ARG
nixProfileList "$1" | xargs -rt $DRY_RUN_CMD nix profile remove $VERBOSE_ARG
else
if nix-env -q | grep -q "^$1$"; then
run --silence nix-env -e "$1"