diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-03-12T10·45+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-03-12T10·45+0000 |
commit | a5619f1dffbf3600dd16b51e84ae3c999edc439c (patch) | |
tree | 4fbebc9352ecb394f396dfad023c56ab694e9fa5 /src/libstore/exec.cc | |
parent | 7f0ed370da62b867d90ba5346f4b9f217fbbe10f (diff) |
* Set the NIX_STORE and NIX_BUILD_TOP environment variables in
builders to point to the store and the temporary build directory, respectively. Useful for purity checking. * Also set TEMPDIR, TMPDIR, TEMP, and TEMP to NIX_BUILD_TOP to make sure that tools in the builder store temporary files in the right location.
Diffstat (limited to 'src/libstore/exec.cc')
-rw-r--r-- | src/libstore/exec.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libstore/exec.cc b/src/libstore/exec.cc index 01577143dc9e..31a2bae81ab7 100644 --- a/src/libstore/exec.cc +++ b/src/libstore/exec.cc @@ -17,7 +17,7 @@ static string pathNullDevice = "/dev/null"; /* Run a program. */ void runProgram(const string & program, - const Strings & args, const Environment & env, + const Strings & args, Environment env, const string & logFileName) { /* Create a log file. */ @@ -32,10 +32,20 @@ void runProgram(const string & program, /* Create a temporary directory where the build will take place. */ - string tmpDir = createTempDir(); + Path tmpDir = createTempDir(); AutoDelete delTmpDir(tmpDir); + /* For convenience, set an environment pointing to the top build + directory. */ + env["NIX_BUILD_TOP"] = tmpDir; + + /* Also set TMPDIR and variants to point to this directory. */ + env["TMPDIR"] = tmpDir; + env["TEMPDIR"] = tmpDir; + env["TMP"] = tmpDir; + env["TEMP"] = tmpDir; + /* Fork a child to build the package. */ pid_t pid; switch (pid = fork()) { |