From 0a0c1fcb4d0e42577ac0c7ac23bd9b908ecde49f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 24 Jul 2003 13:43:16 +0000 Subject: [PATCH] * The `-v' flag no longer takes an argument; it should be repeated instead (e.g., `-vvvv' for lots of output). Default is to only print error messages. --- src/fix.cc | 23 +++++++++++------------ src/nix.cc | 12 ++---------- src/normalise.cc | 16 ++++++++-------- src/store.cc | 1 - src/util.cc | 4 ++-- src/util.hh | 11 ++++++----- 6 files changed, 29 insertions(+), 38 deletions(-) diff --git a/src/fix.cc b/src/fix.cc index 8463c0ddb1..10f0e44130 100644 --- a/src/fix.cc +++ b/src/fix.cc @@ -118,7 +118,6 @@ Hash hashPackage(EvalState & state, FState fs) *i = j->second; } } - debug(printTerm(unparseFState(fs))); return hashTerm(unparseFState(fs)); } @@ -176,6 +175,10 @@ static Expr evalExpr2(EvalState & state, Expr e) Hash pkgHash = hashPackage(state, fs); FSId pkgId = writeTerm(unparseFState(fs), ""); state.pkgHashes[pkgId] = pkgHash; + + msg(lvlChatty, format("copied `%1%' -> %2%") + % srcPath % (string) pkgId); + return ATmake("FSId()", ((string) pkgId).c_str()); } @@ -244,7 +247,6 @@ static Expr evalExpr2(EvalState & state, Expr e) canonPath(nixStore + "/" + ((string) outId).c_str() + "-" + name); fs.derive.env.push_back(StringPair("out", outPath)); fs.derive.outputs.push_back(DeriveOutput(outPath, outId)); - debug(format("%1%: %2%") % (string) outId % name); /* Write the resulting term into the Nix store directory. */ Hash pkgHash = outIdGiven @@ -252,6 +254,10 @@ static Expr evalExpr2(EvalState & state, Expr e) : hashPackage(state, fs); FSId pkgId = writeTerm(unparseFState(fs), "-d-" + name); state.pkgHashes[pkgId] = pkgHash; + + msg(lvlChatty, format("instantiated `%1%' -> %2%") + % name % (string) pkgId); + return ATmake("FSId()", ((string) pkgId).c_str()); } @@ -285,6 +291,7 @@ static Expr evalExpr(EvalState & state, Expr e) static Expr evalFile(EvalState & state, string relPath) { string path = searchPath(state.searchDirs, relPath); + Nest nest(lvlTalkative, format("evaluating file `%1%'") % path); Expr e = ATreadFromNamedFile(path.c_str()); if (!e) throw Error(format("unable to read a term from `%1%'") % path); @@ -310,16 +317,8 @@ void run(Strings args) throw UsageError(format("argument required in `%1%'") % arg); state.searchDirs.push_back(*it++); } - else if (arg == "--verbose" || arg == "-v") { - if (it == args.end()) throw UsageError( - format("`%1%' requires an argument") % arg); - istringstream str(*it++); - int lvl; - str >> lvl; - if (str.fail()) throw UsageError( - format("`%1%' requires an integer argument") % arg); - verbosity = (Verbosity) lvl; - } + else if (arg == "--verbose" || arg == "-v") + verbosity = (Verbosity) ((int) verbosity + 1); else if (arg[0] == '-') throw UsageError(format("unknown flag `%1%`") % arg); else diff --git a/src/nix.cc b/src/nix.cc index f672c42a80..3345f983fb 100644 --- a/src/nix.cc +++ b/src/nix.cc @@ -307,16 +307,8 @@ void run(Strings args) op = opVerify; else if (arg == "--path" || arg == "-p") pathArgs = true; - else if (arg == "--verbose" || arg == "-v") { - if (it == args.end()) throw UsageError( - format("`%1%' requires an argument") % arg); - istringstream str(*it++); - int lvl; - str >> lvl; - if (str.fail()) throw UsageError( - format("`%1%' requires an integer argument") % arg); - verbosity = (Verbosity) lvl; - } + else if (arg == "--verbose" || arg == "-v") + verbosity = (Verbosity) ((int) verbosity + 1); else if (arg[0] == '-') opFlags.push_back(arg); else diff --git a/src/normalise.cc b/src/normalise.cc index 6ce73d1acd..80a6152274 100644 --- a/src/normalise.cc +++ b/src/normalise.cc @@ -26,7 +26,7 @@ typedef set FSIdSet; Slice normaliseFState(FSId id, FSIdSet pending) { - Nest nest(lvlDebug, format("normalising fstate %1%") % (string) id); + Nest nest(lvlTalkative, format("normalising fstate %1%") % (string) id); /* Try to substitute $id$ by any known successors in order to speed up the rewrite process. */ @@ -80,7 +80,7 @@ Slice normaliseFState(FSId id, FSIdSet pending) for (DeriveOutputs::iterator i = fs.derive.outputs.begin(); i != fs.derive.outputs.end(); i++) { - debug(format("building %1% in %2%") % (string) i->second % i->first); + debug(format("building %1% in `%2%'") % (string) i->second % i->first); outPaths[i->first] = i->second; inPaths.push_back(i->first); } @@ -94,7 +94,7 @@ Slice normaliseFState(FSId id, FSIdSet pending) try { expandId(i->second, i->first, "/", pending); } catch (Error & e) { - debug(format("fast build failed: %1%") % e.what()); + debug(format("fast build failed for %1%") % e.what()); fastBuild = false; break; } @@ -109,12 +109,12 @@ Slice normaliseFState(FSId id, FSIdSet pending) throw Error(format("path `%1%' exists") % i->first); /* Run the builder. */ - debug(format("building...")); + msg(lvlChatty, format("building...")); runProgram(fs.derive.builder, env); - debug(format("build completed")); + msg(lvlChatty, format("build completed")); } else - debug(format("skipping build")); + msg(lvlChatty, format("fast build succesful")); /* Check whether the output paths were created, and register each one. */ @@ -167,7 +167,7 @@ Slice normaliseFState(FSId id, FSIdSet pending) fs.type = FState::fsSlice; ATerm nf = unparseFState(fs); - debug(format("normal form: %1%") % printTerm(nf)); + msg(lvlVomit, format("normal form: %1%") % printTerm(nf)); storeSuccessor(id, nf); return fs.slice; @@ -206,7 +206,7 @@ void realiseSlice(const Slice & slice, FSIdSet pending) i != slice.elems.end(); i++) { SliceElem elem = *i; - debug(format("expanding %1% in %2%") % (string) elem.id % elem.path); + debug(format("expanding %1% in `%2%'") % (string) elem.id % elem.path); expandId(elem.id, elem.path, "/", pending); } } diff --git a/src/store.cc b/src/store.cc index 50932d8062..fe7e1406f0 100644 --- a/src/store.cc +++ b/src/store.cc @@ -167,7 +167,6 @@ bool isInPrefix(const string & path, const string & _prefix) string expandId(const FSId & id, const string & target, const string & prefix, FSIdSet pending) { - debug(format("expanding %1%") % (string) id); Nest nest(lvlDebug, format("expanding %1%") % (string) id); Strings paths; diff --git a/src/util.cc b/src/util.cc index 8510bb7a63..3c9a31acc1 100644 --- a/src/util.cc +++ b/src/util.cc @@ -130,7 +130,7 @@ void deletePath(string path) } -Verbosity verbosity = lvlNormal; +Verbosity verbosity = lvlError; static int nestingLevel = 0; @@ -165,7 +165,7 @@ void msg(Verbosity level, const format & f) void debug(const format & f) { - msg(lvlDebug, format("debug: %1%") % f.str()); + msg(lvlDebug, f); } diff --git a/src/util.hh b/src/util.hh index 6d87898b5d..2863085c16 100644 --- a/src/util.hh +++ b/src/util.hh @@ -73,10 +73,11 @@ void deletePath(string path); /* Messages. */ typedef enum { - lvlError = 0, - lvlNormal = 5, - lvlDebug = 10, - lvlDebugMore = 15 + lvlError, + lvlTalkative, + lvlChatty, + lvlDebug, + lvlVomit } Verbosity; extern Verbosity verbosity; /* supress msgs > this */ @@ -91,7 +92,7 @@ public: }; void msg(Verbosity level, const format & f); -void debug(const format & f); /* shorthand */ +void debug(const format & f); /* short-hand for msg(lvlDebug, ...) */ /* Wrappers arount read()/write() that read/write exactly the