diff options
Diffstat (limited to 'src/libstore')
-rw-r--r-- | src/libstore/local-store.cc | 5 | ||||
-rw-r--r-- | src/libstore/misc.cc | 6 | ||||
-rw-r--r-- | src/libstore/misc.hh | 3 |
3 files changed, 11 insertions, 3 deletions
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index 6926c49370d8..141c7a85297f 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -565,7 +565,10 @@ bool LocalStore::querySubstitutablePathInfo(const Path & path, Path p; getline(*run.from, p); info.references.insert(p); } - info.downloadSize = 0; + getline(*run.from, s); + long long size; + if (!string2Int(s, size)) abort(); + info.downloadSize = size; return true; } } diff --git a/src/libstore/misc.cc b/src/libstore/misc.cc index 1759f521cc29..85197adcf0db 100644 --- a/src/libstore/misc.cc +++ b/src/libstore/misc.cc @@ -46,8 +46,11 @@ Path findOutput(const Derivation & drv, string id) void queryMissing(const PathSet & targets, - PathSet & willBuild, PathSet & willSubstitute, PathSet & unknown) + PathSet & willBuild, PathSet & willSubstitute, PathSet & unknown, + unsigned long long & downloadSize) { + downloadSize = 0; + PathSet todo(targets.begin(), targets.end()), done; while (!todo.empty()) { @@ -86,6 +89,7 @@ void queryMissing(const PathSet & targets, SubstitutablePathInfo info; if (store->querySubstitutablePathInfo(p, info)) { willSubstitute.insert(p); + downloadSize += info.downloadSize; todo.insert(info.references.begin(), info.references.end()); } else unknown.insert(p); diff --git a/src/libstore/misc.hh b/src/libstore/misc.hh index 33d81ed4a07f..f3aa34076c19 100644 --- a/src/libstore/misc.hh +++ b/src/libstore/misc.hh @@ -29,7 +29,8 @@ Path findOutput(const Derivation & drv, string id); derivations that will be built, and the set of output paths that will be substituted. */ void queryMissing(const PathSet & targets, - PathSet & willBuild, PathSet & willSubstitute, PathSet & unknown); + PathSet & willBuild, PathSet & willSubstitute, PathSet & unknown, + unsigned long long & downloadSize); } |