diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2008-08-04T13·44+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2008-08-04T13·44+0000 |
commit | a1d310b6b5c710215265c1cd0d5893248ed50f92 (patch) | |
tree | bf35d52f339ee027fc749bb63cc3d2bbe5a23f49 /src/libmain/shared.cc | |
parent | 42043953c3558f054dc5b9bb3da605a4a3ed6314 (diff) |
* `nix-store --realise': print what paths will be built/downloaded,
just like nix-env. * `nix-store --realise': --dry-run option.
Diffstat (limited to 'src/libmain/shared.cc')
-rw-r--r-- | src/libmain/shared.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc index 5a8f600e8d36..fd16dece7d44 100644 --- a/src/libmain/shared.cc +++ b/src/libmain/shared.cc @@ -4,6 +4,7 @@ #include "globals.hh" #include "store-api.hh" #include "util.hh" +#include "misc.hh" #include <iostream> #include <cctype> @@ -49,6 +50,34 @@ void printGCWarning() } +void printMissing(const PathSet & paths) +{ + unsigned long long downloadSize; + PathSet willBuild, willSubstitute, unknown; + queryMissing(paths, willBuild, willSubstitute, unknown, downloadSize); + + if (!willBuild.empty()) { + printMsg(lvlInfo, format("the following derivations will be built:")); + foreach (PathSet::iterator, i, willBuild) + printMsg(lvlInfo, format(" %1%") % *i); + } + + if (!willSubstitute.empty()) { + printMsg(lvlInfo, format("the following paths will be downloaded/copied (%.2f MiB):") % + (downloadSize / (1024.0 * 1024.0))); + foreach (PathSet::iterator, i, willSubstitute) + printMsg(lvlInfo, format(" %1%") % *i); + } + + if (!unknown.empty()) { + printMsg(lvlInfo, format("don't know how to build the following paths%1%:") + % (readOnlyMode ? " (may be caused by read-only store access)" : "")); + foreach (PathSet::iterator, i, unknown) + printMsg(lvlInfo, format(" %1%") % *i); + } +} + + static void setLogType(string lt) { if (lt == "pretty") logType = ltPretty; |