about summary refs log tree commit diff
path: root/third_party/nix/src/nix-build/nix-build.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/nix/src/nix-build/nix-build.cc')
-rw-r--r--third_party/nix/src/nix-build/nix-build.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/third_party/nix/src/nix-build/nix-build.cc b/third_party/nix/src/nix-build/nix-build.cc
index 30ab2a8136d2..26c308967724 100644
--- a/third_party/nix/src/nix-build/nix-build.cc
+++ b/third_party/nix/src/nix-build/nix-build.cc
@@ -377,9 +377,12 @@ static void _main(int argc, char** argv) {
     /* Figure out what bash shell to use. If $NIX_BUILD_SHELL
        is not set, then build bashInteractive from
        <nixpkgs>. */
-    auto shell = getEnv("NIX_BUILD_SHELL", "");
+    auto opt_shell = getEnv("NIX_BUILD_SHELL");
+    std::string shell;
 
-    if (shell.empty()) {
+    if (opt_shell.has_value()) {
+      shell = opt_shell.value();
+    } else {
       try {
         auto expr = state->parseExprFromString(
             "(import <nixpkgs> {}).bashInteractive", absPath("."));
@@ -427,7 +430,8 @@ static void _main(int argc, char** argv) {
     // Set the environment.
     auto env = getEnv();
 
-    auto tmp = getEnv("TMPDIR", getEnv("XDG_RUNTIME_DIR", "/tmp"));
+    auto tmp =
+        getEnv("TMPDIR").value_or(getEnv("XDG_RUNTIME_DIR").value_or("/tmp"));
 
     if (pure) {
       decltype(env) newEnv;