1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-30 19:57:59 +02:00

* Nix now respects $TMPDIR for the creation of temporary build directories.

* Retry creation of a temporary directory (with a different name) in the 
  case of EEXIST.
This commit is contained in:
Eelco Dolstra 2003-10-02 11:55:38 +00:00
parent 6d478597c7
commit 4193d62e08
3 changed files with 24 additions and 5 deletions

View file

@ -171,6 +171,26 @@ void makePathReadOnly(const string & path)
}
static string tempName()
{
static int counter = 0;
char * s = getenv("TMPDIR");
string tmpRoot = s ? canonPath(string(s)) : "/tmp";
return (format("%1%/nix-%2%-%3%") % tmpRoot % getpid() % counter++).str();
}
string createTempDir()
{
while (1) {
string tmpDir = tempName();
if (mkdir(tmpDir.c_str(), 0777) == 0) return tmpDir;
if (errno != EEXIST)
throw SysError(format("creating directory `%1%'") % tmpDir);
}
}
Verbosity verbosity = lvlError;
static int nestingLevel = 0;