2016-04-11 00:23:16 +03:00
|
|
|
if [ -n "$HOME" ] && [ -n "$USER" ]; then
|
|
|
|
__savedpath="$PATH"
|
|
|
|
export PATH=@coreutils@
|
|
|
|
|
|
|
|
# Set up the per-user profile.
|
|
|
|
# This part should be kept in sync with nixpkgs:nixos/modules/programs/shell.nix
|
|
|
|
|
2016-05-31 14:07:10 +03:00
|
|
|
NIX_LINK=$HOME/.nix-profile
|
2016-04-11 00:23:16 +03:00
|
|
|
|
2016-05-31 14:07:10 +03:00
|
|
|
NIX_USER_PROFILE_DIR=@localstatedir@/nix/profiles/per-user/$USER
|
2016-04-11 00:23:16 +03:00
|
|
|
|
|
|
|
if [ -w "$HOME" ]; then
|
|
|
|
if ! [ -L "$NIX_LINK" ]; then
|
|
|
|
echo "Nix: creating $NIX_LINK" >&2
|
|
|
|
if [ "$USER" != root ]; then
|
|
|
|
if ! ln -s "$NIX_USER_PROFILE_DIR"/profile "$NIX_LINK"; then
|
|
|
|
echo "Nix: WARNING: could not create $NIX_LINK -> $NIX_USER_PROFILE_DIR/profile" >&2
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
# Root installs in the system-wide profile by default.
|
|
|
|
ln -s @localstatedir@/nix/profiles/default "$NIX_LINK"
|
|
|
|
fi
|
|
|
|
fi
|
2014-01-15 15:34:49 +02:00
|
|
|
|
2016-04-11 00:23:16 +03:00
|
|
|
# Subscribe the user to the unstable Nixpkgs channel by default.
|
|
|
|
if [ ! -e "$HOME/.nix-channels" ]; then
|
|
|
|
echo "https://nixos.org/channels/nixpkgs-unstable nixpkgs" > "$HOME/.nix-channels"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Set up a default Nix expression from which to install stuff.
|
|
|
|
__nix_defexpr="$HOME"/.nix-defexpr
|
|
|
|
[ -L "$__nix_defexpr" ] && rm -f "$__nix_defexpr"
|
|
|
|
mkdir -m 0755 -p "$__nix_defexpr"
|
|
|
|
if [ "$USER" != root ] && [ ! -L "$__nix_defexpr"/channels_root ]; then
|
|
|
|
ln -s @localstatedir@/nix/profiles/per-user/root/channels "$__nix_defexpr"/channels_root
|
|
|
|
fi
|
|
|
|
unset __nix_defexpr
|
2012-05-27 12:34:57 +03:00
|
|
|
fi
|
2003-04-09 15:26:48 +03:00
|
|
|
|
2019-05-15 15:30:09 +03:00
|
|
|
# Append ~/.nix-defexpr/channels to $NIX_PATH so that <nixpkgs>
|
|
|
|
# paths work when the user has fetched the Nixpkgs channel.
|
|
|
|
export NIX_PATH=${NIX_PATH:+$NIX_PATH:}$HOME/.nix-defexpr/channels
|
2016-04-11 00:23:16 +03:00
|
|
|
|
|
|
|
# Set up environment.
|
|
|
|
# This part should be kept in sync with nixpkgs:nixos/modules/programs/environment.nix
|
2019-05-16 05:04:39 +03:00
|
|
|
export NIX_PROFILES="@localstatedir@/nix/profiles/default $HOME/.nix-profile"
|
2016-04-11 00:23:16 +03:00
|
|
|
|
2016-10-13 18:09:10 +03:00
|
|
|
# Set $NIX_SSL_CERT_FILE so that Nixpkgs applications like curl work.
|
2015-06-08 12:40:35 +03:00
|
|
|
if [ -e /etc/ssl/certs/ca-certificates.crt ]; then # NixOS, Ubuntu, Debian, Gentoo, Arch
|
2016-10-13 18:09:10 +03:00
|
|
|
export NIX_SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
|
2016-02-12 14:26:19 +02:00
|
|
|
elif [ -e /etc/ssl/ca-bundle.pem ]; then # openSUSE Tumbleweed
|
2016-10-13 18:09:10 +03:00
|
|
|
export NIX_SSL_CERT_FILE=/etc/ssl/ca-bundle.pem
|
2015-06-08 12:40:35 +03:00
|
|
|
elif [ -e /etc/ssl/certs/ca-bundle.crt ]; then # Old NixOS
|
2016-10-13 18:09:10 +03:00
|
|
|
export NIX_SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt
|
2015-06-08 12:40:35 +03:00
|
|
|
elif [ -e /etc/pki/tls/certs/ca-bundle.crt ]; then # Fedora, CentOS
|
2016-10-13 18:09:10 +03:00
|
|
|
export NIX_SSL_CERT_FILE=/etc/pki/tls/certs/ca-bundle.crt
|
2015-06-08 12:40:35 +03:00
|
|
|
elif [ -e "$NIX_LINK/etc/ssl/certs/ca-bundle.crt" ]; then # fall back to cacert in Nix profile
|
2016-10-13 18:09:10 +03:00
|
|
|
export NIX_SSL_CERT_FILE="$NIX_LINK/etc/ssl/certs/ca-bundle.crt"
|
2015-06-08 12:40:35 +03:00
|
|
|
elif [ -e "$NIX_LINK/etc/ca-bundle.crt" ]; then # old cacert in Nix profile
|
2016-10-13 18:09:10 +03:00
|
|
|
export NIX_SSL_CERT_FILE="$NIX_LINK/etc/ca-bundle.crt"
|
2014-07-29 18:11:54 +03:00
|
|
|
fi
|
2016-04-11 00:23:16 +03:00
|
|
|
|
2019-02-14 20:24:16 +02:00
|
|
|
if [ -n "${MANPATH-}" ]; then
|
2016-07-29 13:00:11 +03:00
|
|
|
export MANPATH="$NIX_LINK/share/man:$MANPATH"
|
|
|
|
fi
|
|
|
|
|
2017-05-07 09:41:19 +03:00
|
|
|
export PATH="$NIX_LINK/bin:$__savedpath"
|
2019-05-16 05:04:39 +03:00
|
|
|
unset __savedpath NIX_LINK NIX_USER_PROFILE_DIR
|
2008-11-20 19:22:42 +02:00
|
|
|
fi
|