forked from lix-project/lix
44b7d104b4
While trying to figure out how `nix-env`/`nix profile` work I had a hard time understand how man pages were being installed. Took me quite some time to figure this out, thought it might be useful to others too!
37 lines
1.7 KiB
Bash
37 lines
1.7 KiB
Bash
if [ -n "$HOME" ] && [ -n "$USER" ]; then
|
|
|
|
# Set up the per-user profile.
|
|
# This part should be kept in sync with nixpkgs:nixos/modules/programs/shell.nix
|
|
|
|
NIX_LINK=$HOME/.nix-profile
|
|
|
|
# Set up environment.
|
|
# This part should be kept in sync with nixpkgs:nixos/modules/programs/environment.nix
|
|
export NIX_PROFILES="@localstatedir@/nix/profiles/default $HOME/.nix-profile"
|
|
|
|
# Set $NIX_SSL_CERT_FILE so that Nixpkgs applications like curl work.
|
|
if [ -e /etc/ssl/certs/ca-certificates.crt ]; then # NixOS, Ubuntu, Debian, Gentoo, Arch
|
|
export NIX_SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
|
|
elif [ -e /etc/ssl/ca-bundle.pem ]; then # openSUSE Tumbleweed
|
|
export NIX_SSL_CERT_FILE=/etc/ssl/ca-bundle.pem
|
|
elif [ -e /etc/ssl/certs/ca-bundle.crt ]; then # Old NixOS
|
|
export NIX_SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt
|
|
elif [ -e /etc/pki/tls/certs/ca-bundle.crt ]; then # Fedora, CentOS
|
|
export NIX_SSL_CERT_FILE=/etc/pki/tls/certs/ca-bundle.crt
|
|
elif [ -e "$NIX_LINK/etc/ssl/certs/ca-bundle.crt" ]; then # fall back to cacert in Nix profile
|
|
export NIX_SSL_CERT_FILE="$NIX_LINK/etc/ssl/certs/ca-bundle.crt"
|
|
elif [ -e "$NIX_LINK/etc/ca-bundle.crt" ]; then # old cacert in Nix profile
|
|
export NIX_SSL_CERT_FILE="$NIX_LINK/etc/ca-bundle.crt"
|
|
fi
|
|
|
|
# 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 [ -n "${MANPATH-}" ]; then
|
|
export MANPATH="$NIX_LINK/share/man:$MANPATH"
|
|
fi
|
|
|
|
export PATH="$NIX_LINK/bin:$PATH"
|
|
unset NIX_LINK
|
|
fi
|