nix-profile{,-daemon}.fish: Do not source twice

In order for the script not be sourced multiple times by the same shell
instance, `__ETC_PROFILE_NIX_SOURCED` needs to be set with a `--global`
flag.

Both files are almost identical.  And style differences make it harder
to see what is actually different and keep them in sync, when it is
required.
This commit is contained in:
Illia Bobyr 2025-01-13 18:08:41 -08:00
parent 666d656593
commit b36637c8f7
No known key found for this signature in database
GPG Key ID: 4D72E6A090EB3E9E
2 changed files with 64 additions and 47 deletions

View File

@ -1,3 +1,13 @@
# Only execute this file once per shell.
if test -z "$HOME" || \
test -n "$__ETC_PROFILE_NIX_SOURCED"
exit
end
set --global __ETC_PROFILE_NIX_SOURCED 1
# Local helpers
function add_path --argument-names new_path function add_path --argument-names new_path
if type -q fish_add_path if type -q fish_add_path
# fish 3.2.0 or newer # fish 3.2.0 or newer
@ -10,13 +20,7 @@ function add_path --argument-names new_path
end end
end end
# Only execute this file once per shell. # Main configuration
if test -n "$__ETC_PROFILE_NIX_SOURCED"
exit
end
set __ETC_PROFILE_NIX_SOURCED 1
set --export NIX_PROFILES "@localstatedir@/nix/profiles/default $HOME/.nix-profile" set --export NIX_PROFILES "@localstatedir@/nix/profiles/default $HOME/.nix-profile"
# Populate bash completions, .desktop files, etc # Populate bash completions, .desktop files, etc
@ -54,4 +58,6 @@ end
add_path "@localstatedir@/nix/profiles/default/bin" add_path "@localstatedir@/nix/profiles/default/bin"
add_path "$HOME/.nix-profile/bin" add_path "$HOME/.nix-profile/bin"
# Cleanup
functions -e add_path functions -e add_path

View File

@ -1,3 +1,13 @@
# Only execute this file once per shell.
if test -z "$HOME" || test -z "$USER" || \
test -n "$__ETC_PROFILE_NIX_SOURCED"
exit
end
set --global __ETC_PROFILE_NIX_SOURCED 1
# Local helpers
function add_path --argument-names new_path function add_path --argument-names new_path
if type -q fish_add_path if type -q fish_add_path
# fish 3.2.0 or newer # fish 3.2.0 or newer
@ -10,7 +20,7 @@ function add_path --argument-names new_path
end end
end end
if test -n "$HOME" && test -n "$USER" # Main configuration
# Set up the per-user profile. # Set up the per-user profile.
@ -54,6 +64,7 @@ if test -n "$HOME" && test -n "$USER"
add_path "$NIX_LINK/bin" add_path "$NIX_LINK/bin"
set --erase NIX_LINK set --erase NIX_LINK
end
# Cleanup
functions -e add_path functions -e add_path