From 3f91e0dbae6ce0d37166084f4b8b93c46fe08ad2 Mon Sep 17 00:00:00 2001 From: Patrick Callahan Date: Tue, 16 May 2017 12:17:43 -0700 Subject: [PATCH] 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 ) --- pkgs/shells/fish/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix index 32b7694ba34b..798d00b0be13 100644 --- a/pkgs/shells/fish/default.nix +++ b/pkgs/shells/fish/default.nix @@ -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