diff options
Diffstat (limited to 'src/store.cc')
-rw-r--r-- | src/store.cc | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/store.cc b/src/store.cc index 435ac5cc6..12de50ec6 100644 --- a/src/store.cc +++ b/src/store.cc @@ -224,24 +224,23 @@ string expandHash(const Hash & hash, const string & target, } -void addToStore(string srcPath, string & dstPath, Hash & hash) +void addToStore(string srcPath, string & dstPath, Hash & hash, + bool deterministicName) { srcPath = absPath(srcPath); - hash = hashPath(srcPath); + string baseName = baseNameOf(srcPath); + dstPath = canonPath(nixStore + "/" + (string) hash + "-" + baseName); + try { /* !!! should not use the substitutes! */ - dstPath = expandHash(hash, "", nixStore); + dstPath = expandHash(hash, deterministicName ? dstPath : "", nixStore); return; } catch (...) { } - string baseName = baseNameOf(srcPath); - dstPath = canonPath(nixStore + "/" + (string) hash + "-" + baseName); - copyPath(srcPath, dstPath); - registerPath(dstPath, hash); } |