* 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.
This commit is contained in:
Eelco Dolstra 2004-03-12 10:45:08 +00:00
parent 7f0ed370da
commit a5619f1dff
3 changed files with 19 additions and 3 deletions

View file

@ -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()) {