From c4f98941ed7e5e07786d92fc0be4435878f9b3cd Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 4 Aug 2008 12:29:04 +0000 Subject: * nix-env --dry-run: show the total size of the substituter downloads. --- src/libstore/local-store.cc | 5 ++++- src/libstore/misc.cc | 6 +++++- src/libstore/misc.hh | 3 ++- 3 files changed, 11 insertions(+), 3 deletions(-) (limited to 'src/libstore') 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); } -- cgit 1.4.1