about summary refs log tree commit diff
path: root/src/nix.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2003-07-24T08·53+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2003-07-24T08·53+0000
commit1a7468a57a11288a007c40d50ed28718d757a546 (patch)
tree175c3f3819298006548f4f7d00f4c98ce8135c6b /src/nix.cc
parentb75719b98457c61857689ab135559a17034dd8ec (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.cc16
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