forked from lix-project/lix
Merge pull request #3325 from xzfc/clean-tmpdir
nix-shell: clean up the tmpDir and escape variables
This commit is contained in:
commit
2e953b567e
|
@ -427,13 +427,18 @@ static void _main(int argc, char * * argv)
|
||||||
lose the current $PATH directories. */
|
lose the current $PATH directories. */
|
||||||
auto rcfile = (Path) tmpDir + "/rc";
|
auto rcfile = (Path) tmpDir + "/rc";
|
||||||
writeFile(rcfile, fmt(
|
writeFile(rcfile, fmt(
|
||||||
(keepTmp ? "" : "rm -rf '%1%'; "s) +
|
R"(_nix_shell_clean_tmpdir() { rm -rf %1%; }; )"s +
|
||||||
|
(keepTmp ?
|
||||||
|
"trap _nix_shell_clean_tmpdir EXIT; "
|
||||||
|
"exitHooks+=(_nix_shell_clean_tmpdir); "
|
||||||
|
"failureHooks+=(_nix_shell_clean_tmpdir); ":
|
||||||
|
"_nix_shell_clean_tmpdir; ") +
|
||||||
(pure ? "" : "[ -n \"$PS1\" ] && [ -e ~/.bashrc ] && source ~/.bashrc;") +
|
(pure ? "" : "[ -n \"$PS1\" ] && [ -e ~/.bashrc ] && source ~/.bashrc;") +
|
||||||
"%2%"
|
"%2%"
|
||||||
"dontAddDisableDepTrack=1; "
|
"dontAddDisableDepTrack=1; "
|
||||||
"[ -e $stdenv/setup ] && source $stdenv/setup; "
|
"[ -e $stdenv/setup ] && source $stdenv/setup; "
|
||||||
"%3%"
|
"%3%"
|
||||||
"PATH=\"%4%:$PATH\"; "
|
"PATH=%4%:\"$PATH\"; "
|
||||||
"SHELL=%5%; "
|
"SHELL=%5%; "
|
||||||
"set +e; "
|
"set +e; "
|
||||||
R"s([ -n "$PS1" ] && PS1='\n\[\033[1;32m\][nix-shell:\w]\$\[\033[0m\] '; )s"
|
R"s([ -n "$PS1" ] && PS1='\n\[\033[1;32m\][nix-shell:\w]\$\[\033[0m\] '; )s"
|
||||||
|
@ -442,12 +447,12 @@ static void _main(int argc, char * * argv)
|
||||||
"shopt -u nullglob; "
|
"shopt -u nullglob; "
|
||||||
"unset TZ; %6%"
|
"unset TZ; %6%"
|
||||||
"%7%",
|
"%7%",
|
||||||
(Path) tmpDir,
|
shellEscape(tmpDir),
|
||||||
(pure ? "" : "p=$PATH; "),
|
(pure ? "" : "p=$PATH; "),
|
||||||
(pure ? "" : "PATH=$PATH:$p; unset p; "),
|
(pure ? "" : "PATH=$PATH:$p; unset p; "),
|
||||||
dirOf(*shell),
|
shellEscape(dirOf(*shell)),
|
||||||
*shell,
|
shellEscape(*shell),
|
||||||
(getenv("TZ") ? (string("export TZ='") + getenv("TZ") + "'; ") : ""),
|
(getenv("TZ") ? (string("export TZ=") + shellEscape(getenv("TZ")) + "; ") : ""),
|
||||||
envCommand));
|
envCommand));
|
||||||
|
|
||||||
Strings envStrs;
|
Strings envStrs;
|
||||||
|
|
Loading…
Reference in a new issue