From a5f2750ebb1fb59679079139810e48b53abc51de Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Thu, 8 Sep 2016 09:09:52 -0400 Subject: [PATCH] Fix early removal of rc-file for nix-shell BASH_ENV causes all non-interactive shells called via eg. /etc/bashrc to remove the rc-file before the main shell gets to run it. Completion scripts will often do this. Fixes #976. Adapted from and fixes #1034. --- src/nix-build/nix-build.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/nix-build/nix-build.cc b/src/nix-build/nix-build.cc index 50fcf16ab..57970ca51 100755 --- a/src/nix-build/nix-build.cc +++ b/src/nix-build/nix-build.cc @@ -410,7 +410,6 @@ int main(int argc, char ** argv) auto rcfile = (Path) tmpDir + "/rc"; writeFile(rcfile, (format( "rm -rf '%1%'; " - "unset BASH_ENV; " "[ -n \"$PS1\" ] && [ -e ~/.bashrc ] && source ~/.bashrc; " "%2%" "dontAddDisableDepTrack=1; " @@ -425,7 +424,6 @@ int main(int argc, char ** argv) "unset TZ; %4%" "%5%" ) % (Path) tmpDir % (pure ? "" : "p=$PATH") % (pure ? "" : "PATH=$PATH:$p; unset p; ") % (getenv("TZ") ? (string("export TZ='") + getenv("TZ") + "'; ") : "") % envCommand).str()); - setenv("BASH_ENV", rcfile.c_str(), 1); if (interactive) execlp(getEnv("NIX_BUILD_SHELL", "bash").c_str(), "bash", "--rcfile", rcfile.c_str(), NULL); else