fish: source NixOS environment on non-login shells, when it hasn't been

sourced
(this fixes issue #25789:
https://github.com/NixOS/nixpkgs/issues/25789#issuecomment-301577290 and
the issue with git-annex mentioned here
https://github.com/NixOS/nixpkgs/pull/24314#issuecomment-301587124 )
This commit is contained in:
Patrick Callahan 2017-05-16 12:17:43 -07:00
parent 9f6b1dca58
commit 3f91e0dbae

View file

@ -45,10 +45,15 @@ let
'';
fishPreInitHooks = ''
# source nixos environment if we're a login shell
# source nixos environment
# note that this is required:
# 1. For all shells, not just login shells (mosh needs this as do some other command-line utilities)
# 2. Before the shell is initialized, so that config snippets can find the commands they use on the PATH
builtin status --is-login
or test -z "$__fish_nixos_env_preinit_sourced" -a -z "$ETC_PROFILE_SOURCED" -a -z "$ETC_ZSHENV_SOURCED"
and test -f /etc/fish/nixos-env-preinit.fish
and source /etc/fish/nixos-env-preinit.fish
and set -gx __fish_nixos_env_preinit_sourced 1
test -n "$NIX_PROFILES"
and begin