diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-07-24T08·53+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-07-24T08·53+0000 |
commit | 1a7468a57a11288a007c40d50ed28718d757a546 (patch) | |
tree | 175c3f3819298006548f4f7d00f4c98ce8135c6b /src/nix.cc | |
parent | b75719b98457c61857689ab135559a17034dd8ec (diff) |
* Debug levels. Use `--verbose / -v LEVEL' to display only messages
up to the given verbosity levels. These currently are: lvlError = 0, lvlNormal = 5, lvlDebug = 10, lvlDebugMore = 15 although only lvlError and lvlDebug are actually used right now.
Diffstat (limited to 'src/nix.cc')
-rw-r--r-- | src/nix.cc | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/nix.cc b/src/nix.cc index e0885422762f..f672c42a809d 100644 --- a/src/nix.cc +++ b/src/nix.cc @@ -1,4 +1,5 @@ #include <iostream> +#include <sstream> #include "globals.hh" #include "normalise.hh" @@ -278,10 +279,9 @@ void run(Strings args) Strings opFlags, opArgs; Operation op = 0; - for (Strings::iterator it = args.begin(); - it != args.end(); it++) + for (Strings::iterator it = args.begin(); it != args.end(); ) { - string arg = *it; + string arg = *it++; Operation oldOp = op; @@ -307,6 +307,16 @@ 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[0] == '-') opFlags.push_back(arg); else |