createDirs(): Handle ‘path’ being a symlink

In particular, this fixes "nix-build -o /tmp/result" on Mac OS X
(where /tmp is a symlink).
This commit is contained in:
Eelco Dolstra 2014-10-03 16:53:28 +02:00 committed by Ludovic Courtès
parent 6092a48603
commit c957422835
1 changed files with 3 additions and 0 deletions

View File

@ -379,6 +379,9 @@ Paths createDirs(const Path & path)
created.push_back(path);
}
if (S_ISLNK(st.st_mode) && stat(path.c_str(), &st) == -1)
throw SysError(format("statting symlink `%1%'") % path);
if (!S_ISDIR(st.st_mode)) throw Error(format("`%1%' is not a directory") % path);
return created;