mirror of
https://github.com/NixOS/nix
synced 2025-06-24 22:11:15 +02:00
Merge pull request #12252 from ilya-bobyr/fish-profile-source-once-and-fmt
nix-profile{,-daemon}.fish: Do not source twice, fmt
This commit is contained in:
commit
63c0ea5702
2 changed files with 76 additions and 59 deletions
|
@ -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
|
||||||
|
@ -29,29 +33,31 @@ end
|
||||||
|
|
||||||
# Set $NIX_SSL_CERT_FILE so that Nixpkgs applications like curl work.
|
# Set $NIX_SSL_CERT_FILE so that Nixpkgs applications like curl work.
|
||||||
if test -n "$NIX_SSL_CERT_FILE"
|
if test -n "$NIX_SSL_CERT_FILE"
|
||||||
: # Allow users to override the NIX_SSL_CERT_FILE
|
: # Allow users to override the NIX_SSL_CERT_FILE
|
||||||
else if test -e /etc/ssl/certs/ca-certificates.crt # NixOS, Ubuntu, Debian, Gentoo, Arch
|
else if test -e /etc/ssl/certs/ca-certificates.crt # NixOS, Ubuntu, Debian, Gentoo, Arch
|
||||||
set --export NIX_SSL_CERT_FILE /etc/ssl/certs/ca-certificates.crt
|
set --export NIX_SSL_CERT_FILE /etc/ssl/certs/ca-certificates.crt
|
||||||
else if test -e /etc/ssl/ca-bundle.pem # openSUSE Tumbleweed
|
else if test -e /etc/ssl/ca-bundle.pem # openSUSE Tumbleweed
|
||||||
set --export NIX_SSL_CERT_FILE /etc/ssl/ca-bundle.pem
|
set --export NIX_SSL_CERT_FILE /etc/ssl/ca-bundle.pem
|
||||||
else if test -e /etc/ssl/certs/ca-bundle.crt # Old NixOS
|
else if test -e /etc/ssl/certs/ca-bundle.crt # Old NixOS
|
||||||
set --export NIX_SSL_CERT_FILE /etc/ssl/certs/ca-bundle.crt
|
set --export NIX_SSL_CERT_FILE /etc/ssl/certs/ca-bundle.crt
|
||||||
else if test -e /etc/pki/tls/certs/ca-bundle.crt # Fedora, CentOS
|
else if test -e /etc/pki/tls/certs/ca-bundle.crt # Fedora, CentOS
|
||||||
set --export NIX_SSL_CERT_FILE /etc/pki/tls/certs/ca-bundle.crt
|
set --export NIX_SSL_CERT_FILE /etc/pki/tls/certs/ca-bundle.crt
|
||||||
else if test -e "$NIX_LINK/etc/ssl/certs/ca-bundle.crt" # fall back to cacert in Nix profile
|
else if test -e "$NIX_LINK/etc/ssl/certs/ca-bundle.crt" # fall back to cacert in Nix profile
|
||||||
set --export NIX_SSL_CERT_FILE "$NIX_LINK/etc/ssl/certs/ca-bundle.crt"
|
set --export NIX_SSL_CERT_FILE "$NIX_LINK/etc/ssl/certs/ca-bundle.crt"
|
||||||
else if test -e "$NIX_LINK/etc/ca-bundle.crt" # old cacert in Nix profile
|
else if test -e "$NIX_LINK/etc/ca-bundle.crt" # old cacert in Nix profile
|
||||||
set --export NIX_SSL_CERT_FILE "$NIX_LINK/etc/ca-bundle.crt"
|
set --export NIX_SSL_CERT_FILE "$NIX_LINK/etc/ca-bundle.crt"
|
||||||
else
|
else
|
||||||
# Fall back to what is in the nix profiles, favouring whatever is defined last.
|
# Fall back to what is in the nix profiles, favouring whatever is defined last.
|
||||||
for i in (string split ' ' $NIX_PROFILES)
|
for i in (string split ' ' $NIX_PROFILES)
|
||||||
if test -e "$i/etc/ssl/certs/ca-bundle.crt"
|
if test -e "$i/etc/ssl/certs/ca-bundle.crt"
|
||||||
set --export NIX_SSL_CERT_FILE "$i/etc/ssl/certs/ca-bundle.crt"
|
set --export NIX_SSL_CERT_FILE "$i/etc/ssl/certs/ca-bundle.crt"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
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
|
||||||
|
|
|
@ -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,50 +20,51 @@ 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.
|
||||||
|
|
||||||
set NIX_LINK $HOME/.nix-profile
|
set NIX_LINK $HOME/.nix-profile
|
||||||
|
|
||||||
# Set up environment.
|
# Set up environment.
|
||||||
# This part should be kept in sync with nixpkgs:nixos/modules/programs/environment.nix
|
# This part should be kept in sync with nixpkgs:nixos/modules/programs/environment.nix
|
||||||
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
|
||||||
if test -z "$XDG_DATA_DIRS"
|
if test -z "$XDG_DATA_DIRS"
|
||||||
# According to XDG spec the default is /usr/local/share:/usr/share, don't set something that prevents that default
|
# According to XDG spec the default is /usr/local/share:/usr/share, don't set something that prevents that default
|
||||||
set --export XDG_DATA_DIRS "/usr/local/share:/usr/share:$NIX_LINK/share:/nix/var/nix/profiles/default/share"
|
set --export XDG_DATA_DIRS "/usr/local/share:/usr/share:$NIX_LINK/share:/nix/var/nix/profiles/default/share"
|
||||||
else
|
else
|
||||||
set --export XDG_DATA_DIRS "$XDG_DATA_DIRS:$NIX_LINK/share:/nix/var/nix/profiles/default/share"
|
set --export XDG_DATA_DIRS "$XDG_DATA_DIRS:$NIX_LINK/share:/nix/var/nix/profiles/default/share"
|
||||||
end
|
|
||||||
|
|
||||||
# Set $NIX_SSL_CERT_FILE so that Nixpkgs applications like curl work.
|
|
||||||
if test -n "$NIX_SSH_CERT_FILE"
|
|
||||||
: # Allow users to override the NIX_SSL_CERT_FILE
|
|
||||||
else if test -e /etc/ssl/certs/ca-certificates.crt # NixOS, Ubuntu, Debian, Gentoo, Arch
|
|
||||||
set --export NIX_SSL_CERT_FILE /etc/ssl/certs/ca-certificates.crt
|
|
||||||
else if test -e /etc/ssl/ca-bundle.pem # openSUSE Tumbleweed
|
|
||||||
set --export NIX_SSL_CERT_FILE /etc/ssl/ca-bundle.pem
|
|
||||||
else if test -e /etc/ssl/certs/ca-bundle.crt # Old NixOS
|
|
||||||
set --export NIX_SSL_CERT_FILE /etc/ssl/certs/ca-bundle.crt
|
|
||||||
else if test -e /etc/pki/tls/certs/ca-bundle.crt # Fedora, CentOS
|
|
||||||
set --export NIX_SSL_CERT_FILE /etc/pki/tls/certs/ca-bundle.crt
|
|
||||||
else if test -e "$NIX_LINK/etc/ssl/certs/ca-bundle.crt" # fall back to cacert in Nix profile
|
|
||||||
set --export NIX_SSL_CERT_FILE "$NIX_LINK/etc/ssl/certs/ca-bundle.crt"
|
|
||||||
else if test -e "$NIX_LINK/etc/ca-bundle.crt" # old cacert in Nix profile
|
|
||||||
set --export NIX_SSL_CERT_FILE "$NIX_LINK/etc/ca-bundle.crt"
|
|
||||||
end
|
|
||||||
|
|
||||||
# Only use MANPATH if it is already set. In general `man` will just simply
|
|
||||||
# pick up `.nix-profile/share/man` because is it close to `.nix-profile/bin`
|
|
||||||
# which is in the $PATH. For more info, run `manpath -d`.
|
|
||||||
if set --query MANPATH
|
|
||||||
set --export --prepend --path MANPATH "$NIX_LINK/share/man"
|
|
||||||
end
|
|
||||||
|
|
||||||
add_path "$NIX_LINK/bin"
|
|
||||||
set --erase NIX_LINK
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Set $NIX_SSL_CERT_FILE so that Nixpkgs applications like curl work.
|
||||||
|
if test -n "$NIX_SSH_CERT_FILE"
|
||||||
|
: # Allow users to override the NIX_SSL_CERT_FILE
|
||||||
|
else if test -e /etc/ssl/certs/ca-certificates.crt # NixOS, Ubuntu, Debian, Gentoo, Arch
|
||||||
|
set --export NIX_SSL_CERT_FILE /etc/ssl/certs/ca-certificates.crt
|
||||||
|
else if test -e /etc/ssl/ca-bundle.pem # openSUSE Tumbleweed
|
||||||
|
set --export NIX_SSL_CERT_FILE /etc/ssl/ca-bundle.pem
|
||||||
|
else if test -e /etc/ssl/certs/ca-bundle.crt # Old NixOS
|
||||||
|
set --export NIX_SSL_CERT_FILE /etc/ssl/certs/ca-bundle.crt
|
||||||
|
else if test -e /etc/pki/tls/certs/ca-bundle.crt # Fedora, CentOS
|
||||||
|
set --export NIX_SSL_CERT_FILE /etc/pki/tls/certs/ca-bundle.crt
|
||||||
|
else if test -e "$NIX_LINK/etc/ssl/certs/ca-bundle.crt" # fall back to cacert in Nix profile
|
||||||
|
set --export NIX_SSL_CERT_FILE "$NIX_LINK/etc/ssl/certs/ca-bundle.crt"
|
||||||
|
else if test -e "$NIX_LINK/etc/ca-bundle.crt" # old cacert in Nix profile
|
||||||
|
set --export NIX_SSL_CERT_FILE "$NIX_LINK/etc/ca-bundle.crt"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Only use MANPATH if it is already set. In general `man` will just simply
|
||||||
|
# pick up `.nix-profile/share/man` because is it close to `.nix-profile/bin`
|
||||||
|
# which is in the $PATH. For more info, run `manpath -d`.
|
||||||
|
if set --query MANPATH
|
||||||
|
set --export --prepend --path MANPATH "$NIX_LINK/share/man"
|
||||||
|
end
|
||||||
|
|
||||||
|
add_path "$NIX_LINK/bin"
|
||||||
|
set --erase NIX_LINK
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
|
||||||
functions -e add_path
|
functions -e add_path
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue