aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libexpr/eval-settings.cc9
-rw-r--r--src/libexpr/eval-settings.hh5
-rwxr-xr-xsrc/nix-channel/nix-channel.cc3
-rw-r--r--src/nix-env/nix-env.cc3
4 files changed, 17 insertions, 3 deletions
diff --git a/src/libexpr/eval-settings.cc b/src/libexpr/eval-settings.cc
index 422aaf8d5..93b4a5289 100644
--- a/src/libexpr/eval-settings.cc
+++ b/src/libexpr/eval-settings.cc
@@ -63,7 +63,7 @@ Strings EvalSettings::getDefaultNixPath()
};
if (!evalSettings.restrictEval && !evalSettings.pureEval) {
- add(settings.useXDGBaseDirectories ? getStateDir() + "/nix/defexpr/channels" : getHome() + "/.nix-defexpr/channels");
+ add(getNixDefExpr() + "/channels");
add(rootChannelsDir() + "/nixpkgs", "nixpkgs");
add(rootChannelsDir());
}
@@ -92,4 +92,11 @@ EvalSettings evalSettings;
static GlobalConfig::Register rEvalSettings(&evalSettings);
+Path getNixDefExpr()
+{
+ return settings.useXDGBaseDirectories
+ ? getStateDir() + "/nix/defexpr"
+ : getHome() + "/.nix-defexpr";
+}
+
}
diff --git a/src/libexpr/eval-settings.hh b/src/libexpr/eval-settings.hh
index 043af6cab..e6666061a 100644
--- a/src/libexpr/eval-settings.hh
+++ b/src/libexpr/eval-settings.hh
@@ -95,4 +95,9 @@ struct EvalSettings : Config
extern EvalSettings evalSettings;
+/**
+ * Conventionally part of the default nix path in impure mode.
+ */
+Path getNixDefExpr();
+
}
diff --git a/src/nix-channel/nix-channel.cc b/src/nix-channel/nix-channel.cc
index c1c8edd1d..95f401441 100755
--- a/src/nix-channel/nix-channel.cc
+++ b/src/nix-channel/nix-channel.cc
@@ -5,6 +5,7 @@
#include "store-api.hh"
#include "legacy.hh"
#include "fetchers.hh"
+#include "eval-settings.hh" // for defexpr
#include "util.hh"
#include <fcntl.h>
@@ -165,7 +166,7 @@ static int main_nix_channel(int argc, char ** argv)
// Figure out the name of the `.nix-channels' file to use
auto home = getHome();
channelsList = settings.useXDGBaseDirectories ? createNixStateDir() + "/channels" : home + "/.nix-channels";
- nixDefExpr = settings.useXDGBaseDirectories ? createNixStateDir() + "/defexpr" : home + "/.nix-defexpr";
+ nixDefExpr = getNixDefExpr();
// Figure out the name of the channels profile.
profile = profilesDir() + "/channels";
diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc
index 91b073b49..3dc3db0fc 100644
--- a/src/nix-env/nix-env.cc
+++ b/src/nix-env/nix-env.cc
@@ -15,6 +15,7 @@
#include "value-to-json.hh"
#include "xml-writer.hh"
#include "legacy.hh"
+#include "eval-settings.hh" // for defexpr
#include <cerrno>
#include <ctime>
@@ -1399,7 +1400,7 @@ static int main_nix_env(int argc, char * * argv)
globals.instSource.type = srcUnknown;
globals.instSource.systemFilter = "*";
- Path nixExprPath = settings.useXDGBaseDirectories ? createNixStateDir() + "/defexpr" : getHome() + "/.nix-defexpr";
+ Path nixExprPath = getNixDefExpr();
if (!pathExists(nixExprPath)) {
try {