diff options
Diffstat (limited to 'os/common/modules/nix/nix.patch')
| -rw-r--r-- | os/common/modules/nix/nix.patch | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/os/common/modules/nix/nix.patch b/os/common/modules/nix/nix.patch deleted file mode 100644 index 606e61d..0000000 --- a/os/common/modules/nix/nix.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff --git a/develop.cc b/develop.cc -index c27c254fb..e914d5f6c 100644 ---- a/develop.cc -+++ b/develop.cc -@@ -629,13 +629,12 @@ struct CmdDevelop : Common, MixEnvironment - fmt("[ -n \"$PS1\" ] && PS1+=%s;\n", escapeShellArgAlways(developSettings.bashPromptSuffix.get())); - } - -- writeFull(rcFileFd.get(), script); -- - setEnviron(); - // prevent garbage collection until shell exits - setEnv("NIX_GCROOT", store->printStorePath(gcroot).c_str()); - - Path shell = "bash"; -+ bool foundInteractive = false; - - try { - auto state = getEvalState(); -@@ -658,19 +657,17 @@ struct CmdDevelop : Common, MixEnvironment - Strings{"legacyPackages." + settings.thisSystem.get() + "."}, - nixpkgsLockFlags); - -- bool found = false; -- - for (auto & path : Installable::toStorePathSet( - getEvalStore(), store, Realise::Outputs, OperateOn::Output, {bashInstallable})) { - auto s = store->printStorePath(path) + "/bin/bash"; - if (pathExists(s)) { - shell = s; -- found = true; -+ foundInteractive = true; - break; - } - } - -- if (!found) -+ if (!foundInteractive) - throw Error("package 'nixpkgs#bashInteractive' does not provide a 'bin/bash'"); - - } catch (Error &) { -@@ -680,6 +677,11 @@ struct CmdDevelop : Common, MixEnvironment - // Override SHELL with the one chosen for this environment. - // This is to make sure the system shell doesn't leak into the build environment. - setEnv("SHELL", shell.c_str()); -+ // https://github.com/NixOS/nix/issues/5873 -+ script += fmt("SHELL=\"%s\"\n", shell); -+ if (foundInteractive) -+ script += fmt("PATH=\"%s${PATH:+:$PATH}\"\n", std::filesystem::path(shell).parent_path()); -+ writeFull(rcFileFd.get(), script); - - #ifdef _WIN32 // TODO re-enable on Windows - throw UnimplementedError("Cannot yet spawn processes on Windows"); |
