diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-08-04 09:25:21 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-08-04 09:25:21 +0000 |
commit | e3a50f7e25c552a78974fae684484d27a36b7c60 (patch) | |
tree | 8637f3284a2adf65fdb82e974177873c3b9c19f4 | |
parent | 18ebd7b03071ebbb38cea9eca39a5e7e2e0cf2ea (diff) |
* Creating a file nix-support/no-scan in the output path of a
derivation disables scanning for dependencies. Use at your own
risk. This is a quick hack to speed up UML image generation (image
are very big, say 1 GB).
It would be better if the scanner were faster, and didn't read the
whole file into memory.
-rw-r--r-- | src/libstore/normalise.cc | 7 | ||||
-rw-r--r-- | src/libutil/util.cc | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/libstore/normalise.cc b/src/libstore/normalise.cc index ae743c136..877478370 100644 --- a/src/libstore/normalise.cc +++ b/src/libstore/normalise.cc @@ -1049,8 +1049,11 @@ void NormalisationGoal::createClosure() in it. */ startNest(nest2, lvlChatty, format("scanning for store references in `%1%'") % path); - Strings refPaths = filterReferences(path, - Strings(allPaths.begin(), allPaths.end())); + Strings refPaths; + if (!pathExists(path + "/nix-support/no-scan")) { + refPaths = filterReferences(path, + Strings(allPaths.begin(), allPaths.end())); + } nest2.close(); /* Construct a closure element for this output path. */ diff --git a/src/libutil/util.cc b/src/libutil/util.cc index 43ec2b9f3..2a2dffb25 100644 --- a/src/libutil/util.cc +++ b/src/libutil/util.cc @@ -115,7 +115,7 @@ bool pathExists(const Path & path) struct stat st; res = lstat(path.c_str(), &st); if (!res) return true; - if (errno != ENOENT) + if (errno != ENOENT && errno != ENOTDIR) throw SysError(format("getting status of %1%") % path); return false; } |