aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/Makefile.am11
-rw-r--r--src/libstore/globals.cc30
-rw-r--r--src/libstore/globals.hh4
3 files changed, 43 insertions, 2 deletions
diff --git a/src/libstore/Makefile.am b/src/libstore/Makefile.am
index e19256b92..39a61233b 100644
--- a/src/libstore/Makefile.am
+++ b/src/libstore/Makefile.am
@@ -15,7 +15,16 @@ libstore_la_LIBADD = ../libutil/libutil.la ../boost/format/libformat.la ${aterm_
EXTRA_DIST = schema.sql
AM_CXXFLAGS = -Wall \
- ${sqlite_include} -I$(srcdir)/.. -I$(srcdir)/../libutil
+ ${sqlite_include} -I$(srcdir)/.. -I$(srcdir)/../libutil \
+ -DNIX_STORE_DIR=\"$(storedir)\" \
+ -DNIX_DATA_DIR=\"$(datadir)\" \
+ -DNIX_STATE_DIR=\"$(localstatedir)/nix\" \
+ -DNIX_LOG_DIR=\"$(localstatedir)/log/nix\" \
+ -DNIX_CONF_DIR=\"$(sysconfdir)/nix\" \
+ -DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \
+ -DNIX_BIN_DIR=\"$(bindir)\" \
+ -I$(srcdir)/.. -I$(srcdir)/../libutil \
+ -I$(srcdir)/../libstore
local-store.lo: schema.sql.hh
diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc
index 2e9dc8823..5c22f1406 100644
--- a/src/libstore/globals.cc
+++ b/src/libstore/globals.cc
@@ -1,3 +1,5 @@
+#include "config.h"
+
#include "globals.hh"
#include "util.hh"
@@ -138,5 +140,33 @@ void reloadSettings()
settings.clear();
}
+
+void setDefaultsFromEnvironment()
+{
+ /* Setup Nix paths. */
+ nixStore = canonPath(getEnv("NIX_STORE_DIR", getEnv("NIX_STORE", NIX_STORE_DIR)));
+ nixDataDir = canonPath(getEnv("NIX_DATA_DIR", NIX_DATA_DIR));
+ nixLogDir = canonPath(getEnv("NIX_LOG_DIR", NIX_LOG_DIR));
+ nixStateDir = canonPath(getEnv("NIX_STATE_DIR", NIX_STATE_DIR));
+ nixDBPath = getEnv("NIX_DB_DIR", nixStateDir + "/db");
+ nixConfDir = canonPath(getEnv("NIX_CONF_DIR", NIX_CONF_DIR));
+ nixLibexecDir = canonPath(getEnv("NIX_LIBEXEC_DIR", NIX_LIBEXEC_DIR));
+ nixBinDir = canonPath(getEnv("NIX_BIN_DIR", NIX_BIN_DIR));
+
+ string subs = getEnv("NIX_SUBSTITUTERS", "default");
+ if (subs == "default") {
+ substituters.push_back(nixLibexecDir + "/nix/substituters/copy-from-other-stores.pl");
+ substituters.push_back(nixLibexecDir + "/nix/substituters/download-using-manifests.pl");
+ } else
+ substituters = tokenizeString(subs, ":");
+
+ /* Get some settings from the configuration file. */
+ thisSystem = querySetting("system", SYSTEM);
+ maxBuildJobs = queryIntSetting("build-max-jobs", 1);
+ buildCores = queryIntSetting("build-cores", 1);
+ maxSilentTime = queryIntSetting("build-max-silent-time", 0);
+ buildTimeout = queryIntSetting("build-timeout", 0);
+}
+
}
diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh
index 231c1f850..12a9b9ca1 100644
--- a/src/libstore/globals.hh
+++ b/src/libstore/globals.hh
@@ -114,7 +114,9 @@ void overrideSetting(const string & name, const Strings & value);
void reloadSettings();
-
+void setDefaultsFromEnvironment();
+
+
}