aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/globals.cc
diff options
context:
space:
mode:
authorLinus Heckemann <git@sphalerite.org>2018-10-25 13:00:21 +0200
committerLinus Heckemann <git@sphalerite.org>2018-10-31 09:24:43 +0100
commitf3b8173a93a3571046ef6765afe1a15efc1e0de6 (patch)
treeb2b5c865eae201be54e908b45ee4a5ed5d97394c /src/libstore/globals.cc
parent7a9ac91a43e1e05e9df9d1b9b4a2cf322d62bb1c (diff)
config: use all of XDG_CONFIG_DIRS
Previously, config would only be read from XDG_CONFIG_HOME. This change allows reading config from additional directories, which enables e.g. per-project binary caches or chroot stores with the help of direnv.
Diffstat (limited to 'src/libstore/globals.cc')
-rw-r--r--src/libstore/globals.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc
index a9c07b23a..1c2c08715 100644
--- a/src/libstore/globals.cc
+++ b/src/libstore/globals.cc
@@ -78,7 +78,11 @@ void loadConfFile()
~/.nix/nix.conf or the command line. */
globalConfig.resetOverriden();
- globalConfig.applyConfigFile(getConfigDir() + "/nix/nix.conf");
+ auto dirs = getConfigDirs();
+ // Iterate over them in reverse so that the ones appearing first in the path take priority
+ for (auto dir = dirs.rbegin(); dir != dirs.rend(); dir++) {
+ globalConfig.applyConfigFile(*dir + "/nix/nix.conf");
+ }
}
unsigned int Settings::getDefaultCores()