mirror of
https://github.com/NixOS/nix
synced 2025-06-24 22:11:15 +02:00
nix-profile{,-daemon}.fish: check for profile in XDG_DATA_HOME
...and also NIX_STATE_HOME in nix-profile.fish. This is directly translated from the bash scripts and makes the fish scripts equivalent in functionality to the bash scripts. Note that nix-profile.fish checks for NIX_STATE_HOME and nix-profile-daemon.fish does not, so the two scripts are no longer identical.
This commit is contained in:
parent
087f268615
commit
751f50f4ad
2 changed files with 59 additions and 2 deletions
|
@ -24,7 +24,33 @@ end
|
|||
|
||||
# Set up the per-user profile.
|
||||
|
||||
set --local NIX_LINK $HOME/.nix-profile
|
||||
set --local NIX_LINK "$HOME/.nix-profile"
|
||||
set --local NIX_LINK_NEW
|
||||
if test -n "$XDG_STATE_HOME"
|
||||
set NIX_LINK_NEW "$XDG_STATE_HOME/nix/profile"
|
||||
else
|
||||
set NIX_LINK_NEW "$HOME/.local/state/nix/profile"
|
||||
end
|
||||
if test -e "$NIX_LINK_NEW"
|
||||
if test -t 2; and test -e "$NIX_LINK"
|
||||
set --local warning "\033[1;35mwarning:\033[0m "
|
||||
printf "$warning Both %s and legacy %s exist; using the former.\n" "$NIX_LINK_NEW" "$NIX_LINK" 1>&2
|
||||
|
||||
if test (realpath "$NIX_LINK") = (realpath "$NIX_LINK_NEW")
|
||||
printf " Since the profiles match, you can safely delete either of them.\n" 1>&2
|
||||
else
|
||||
# This should be an exceptionally rare occasion: the only way to get it would be to
|
||||
# 1. Update to newer Nix;
|
||||
# 2. Remove .nix-profile;
|
||||
# 3. Set the $NIX_LINK_NEW to something other than the default user profile;
|
||||
# 4. Roll back to older Nix.
|
||||
# If someone did all that, they can probably figure out how to migrate the profile.
|
||||
printf "$warning Profiles do not match. You should manually migrate from %s to %s.\n" "$NIX_LINK" "$NIX_LINK_NEW" 1>&2
|
||||
end
|
||||
end
|
||||
|
||||
set NIX_LINK "$NIX_LINK_NEW"
|
||||
end
|
||||
|
||||
# Set up environment.
|
||||
# This part should be kept in sync with nixpkgs:nixos/modules/programs/environment.nix
|
||||
|
|
|
@ -24,7 +24,38 @@ end
|
|||
|
||||
# Set up the per-user profile.
|
||||
|
||||
set --local NIX_LINK $HOME/.nix-profile
|
||||
set --local NIX_LINK
|
||||
if test -n "$NIX_STATE_HOME"
|
||||
set NIX_LINK "$NIX_STATE_HOME/.nix-profile"
|
||||
else
|
||||
set NIX_LINK "$HOME/.nix-profile"
|
||||
set --local NIX_LINK_NEW
|
||||
if test -n "$XDG_STATE_HOME"
|
||||
set NIX_LINK_NEW "$XDG_STATE_HOME/nix/profile"
|
||||
else
|
||||
set NIX_LINK_NEW "$HOME/.local/state/nix/profile"
|
||||
end
|
||||
if test -e "$NIX_LINK_NEW"
|
||||
if test -t 2; and test -e "$NIX_LINK"
|
||||
set --local warning "\033[1;35mwarning:\033[0m "
|
||||
printf "$warning Both %s and legacy %s exist; using the former.\n" "$NIX_LINK_NEW" "$NIX_LINK" 1>&2
|
||||
|
||||
if test (realpath "$NIX_LINK") = (realpath "$NIX_LINK_NEW")
|
||||
printf " Since the profiles match, you can safely delete either of them.\n" 1>&2
|
||||
else
|
||||
# This should be an exceptionally rare occasion: the only way to get it would be to
|
||||
# 1. Update to newer Nix;
|
||||
# 2. Remove .nix-profile;
|
||||
# 3. Set the $NIX_LINK_NEW to something other than the default user profile;
|
||||
# 4. Roll back to older Nix.
|
||||
# If someone did all that, they can probably figure out how to migrate the profile.
|
||||
printf "$warning Profiles do not match. You should manually migrate from %s to %s.\n" "$NIX_LINK" "$NIX_LINK_NEW" 1>&2
|
||||
end
|
||||
end
|
||||
|
||||
set NIX_LINK "$NIX_LINK_NEW"
|
||||
end
|
||||
end
|
||||
|
||||
# Set up environment.
|
||||
# This part should be kept in sync with nixpkgs:nixos/modules/programs/environment.nix
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue