chiark / gitweb /
vol_id: add --debug option
authorKay Sievers <kay.sievers@vrfy.org>
Sat, 6 Sep 2008 14:37:00 +0000 (16:37 +0200)
committerKay Sievers <kay.sievers@vrfy.org>
Sat, 6 Sep 2008 14:37:00 +0000 (16:37 +0200)
extras/volume_id/vol_id.c
extras/volume_id/vol_id.xml

index dcfb0bb..d8302bc 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * vol_id - read filesystem label and uuid
  *
- * Copyright (C) 2005-2006 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2005-2008 Kay Sievers <kay.sievers@vrfy.org>
  *
  *     This program is free software; you can redistribute it and/or modify it
  *     under the terms of the GNU General Public License as published by the
 
 #define BLKGETSIZE64 _IOR(0x12,114,size_t)
 
+static int debug;
+
 static void log_fn(struct udev *udev, int priority,
                   const char *file, int line, const char *fn,
                   const char *format, va_list args)
 {
-       vsyslog(priority, format, args);
+       if (debug) {
+               fprintf(stderr, "%s: ", fn != NULL ? fn : file);
+               vfprintf(stderr, format, args);
+       } else {
+               vsyslog(priority, format, args);
+       }
 }
 
 static void vid_log(int priority, const char *file, int line, const char *format, ...)
@@ -113,6 +120,7 @@ int main(int argc, char *argv[])
                { "skip-raid", 0, NULL, 's' },
                { "probe-all", 0, NULL, 'a' },
                { "offset", 2, NULL, 'o' },
+               { "debug", 0, NULL, 'd' },
                { "help", 0, NULL, 'h' },
                {}
        };
@@ -151,11 +159,16 @@ int main(int argc, char *argv[])
        while (1) {
                int option;
 
-               option = getopt_long(argc, argv, "lLutxsaoh", options, NULL);
+               option = getopt_long(argc, argv, "lLutxsaodh", options, NULL);
                if (option == -1)
                        break;
 
                switch (option) {
+               case 'd':
+                       debug = 1;
+                       if (udev_get_log_priority(udev) < LOG_INFO)
+                               udev_set_log_priority(udev, LOG_INFO);
+                       break;
                case 'l':
                        print = PRINT_LABEL;
                        break;
@@ -183,14 +196,15 @@ int main(int argc, char *argv[])
                        break;
                case 'h':
                        printf("Usage: vol_id [options] <device>\n"
-                           " --export        export key/value pairs\n"
-                           " --type          filesystem type\n"
-                           " --label         filesystem label\n"
-                           " --label-raw     raw label\n"
-                           " --uuid          filesystem uuid\n"
-                           " --skip-raid     don't probe for raid\n"
-                           " --probe-all     find possibly conflicting signatures\n"
-                           " --offset        skip given number of bytes of input\n"
+                           " --export         export key/value pairs\n"
+                           " --type           filesystem type\n"
+                           " --label          filesystem label\n"
+                           " --label-raw      raw label\n"
+                           " --uuid           filesystem uuid\n"
+                           " --skip-raid      don't probe for raid\n"
+                           " --probe-all      find possibly conflicting signatures\n"
+                           " --offset=<bytes> probe at the given offset\n"
+                           " --debug          print debug output to stderr\n"
                            " --help\n\n");
                        goto exit;
                default:
@@ -222,7 +236,7 @@ int main(int argc, char *argv[])
 
        if (ioctl(fd, BLKGETSIZE64, &size) != 0)
                size = 0;
-       dbg(udev, "BLKGETSIZE64=%llu\n", (unsigned long long)size);
+       info(udev, "BLKGETSIZE64=%llu (%lluGB)\n", (unsigned long long)size, (unsigned long long)size >> 30);
 
        /* try to drop all privileges before reading disk content */
        if (getuid() == 0) {
index 6d0a6c6..fcf3a31 100644 (file)
@@ -32,6 +32,8 @@
           <arg><option>--uuid</option></arg>
           <arg><option>--skip-raid</option></arg>
           <arg><option>--probe-all</option></arg>
+          <arg><option>--offset=<replaceable>bytes</replaceable></option></arg>
+          <arg><option>--debug</option></arg>
           <arg><option>--help</option></arg>
           <arg><replaceable>device</replaceable></arg>
         </cmdsynopsis>
             </listitem>
           </varlistentry>
           <varlistentry>
+            <term><option>--offset=<replaceable>bytes</replaceable></option></term>
+            <listitem>
+              <para>Probing at the given offset, instead of the start of the volume.
+              The offset value is specified in bytes.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term><option>--debug</option></term>
+            <listitem>
+              <para>Print debug output to stderr.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
             <term><option>--help</option></term>
             <listitem>
               <para>Print usage.</para>