On Sat, Sep 23, 2006 at 05:20:37AM +0200, Yoshinori K. Okuji wrote:
> 
> However, this usage is against the original meaning, thus the naming is not 
> appropriate any longer. In addition, I don't like that we make an ad-hoc text 
> output (the first line is a fs module name, the second line is a root device 
> name, etc.).
> 
> So I propose that we rename the utility to "grub-probe" and add some options 
> to change the target of grub-probe. The default should be probing a fs to 
> help people who are used to grub-probefs. Here is an example:
> 
> $ grub-probe --target=fs
> ufs
> $ grub-probe
> ufs
> $ grub-probe --target=drive
> (hd0,1)
> $ grub-probe --target=device
> /dev/hda1
> 
> What do you think?

Fine with me.  Please see attached patch (note: for readability I omitted the
rename itself from my patch).

2006-09-23  Robert Millan  <[EMAIL PROTECTED]>

        * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
        grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
        * util/grub-emu.c: Use grub_util_biosdisk_get_grub_dev with the string
        returned by grub_guess_root_device.
        * util/i386/pc/grub-setup.c: Ditto.
        * util/i386/pc/grub-probefs.c: Ditto.

        * util/i386/pc/grub-probefs.c: Rename to ...
        * util/i386/pc/grub-probe.c: ... this.
        * DISTLIST: Update reference to grub-probefs.
        * conf/i386-efi.mk: Ditto.
        * conf/i386-efi.rmk: Ditto.
        * conf/i386-pc.mk: Ditto.
        * conf/i386-pc.rmk: Ditto.
        * util/i386/pc/grub-install.in: Ditto.

        * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
        choose which information we want to print.

-- 
Robert Millan

My spam trap is [EMAIL PROTECTED]  Note: this address is only intended for
spam harvesters.  Writing to it will get you added to my black list.
2006-09-23  Robert Millan  <[EMAIL PROTECTED]>

        * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
        grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
        * util/grub-emu.c: Use grub_util_biosdisk_get_grub_dev with the string
        returned by grub_guess_root_device.
        * util/i386/pc/grub-setup.c: Ditto.
        * util/i386/pc/grub-probefs.c: Ditto.

        * util/i386/pc/grub-probefs.c: Rename to ...
        * util/i386/pc/grub-probe.c: ... this.
        * DISTLIST: Update reference to grub-probefs.
        * conf/i386-efi.mk: Ditto.
        * conf/i386-efi.rmk: Ditto.
        * conf/i386-pc.mk: Ditto.
        * conf/i386-pc.rmk: Ditto.
        * util/i386/pc/grub-install.in: Ditto.

        * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
        choose which information we want to print.

Index: DISTLIST
===================================================================
RCS file: /sources/grub/grub2/DISTLIST,v
retrieving revision 1.36
diff -u -r1.36 DISTLIST
--- DISTLIST    4 Jun 2006 12:59:19 -0000       1.36
+++ DISTLIST    23 Sep 2006 07:16:31 -0000
@@ -253,7 +253,7 @@
 util/i386/pc/grub-install.in
 util/i386/pc/grub-mkdevicemap.c
 util/i386/pc/grub-mkimage.c
-util/i386/pc/grub-probefs.c
+util/i386/pc/grub-probe.c
 util/i386/pc/grub-setup.c
 util/i386/pc/misc.c
 util/powerpc/ieee1275/grub-install.in
Index: conf/i386-efi.mk
===================================================================
RCS file: /sources/grub/grub2/conf/i386-efi.mk,v
retrieving revision 1.15
diff -u -r1.15 i386-efi.mk
--- conf/i386-efi.mk    22 Sep 2006 00:27:38 -0000      1.15
+++ conf/i386-efi.mk    23 Sep 2006 07:16:31 -0000
@@ -6,7 +6,7 @@
 
 # Utilities.
 bin_UTILITIES = grub-mkimage
-#sbin_UTILITIES = grub-setup grub-emu grub-mkdevicemap grub-probefs
+#sbin_UTILITIES = grub-setup grub-emu grub-mkdevicemap grub-probe
 
 # For grub-mkimage.
 grub_mkimage_SOURCES = util/i386/efi/grub-mkimage.c util/misc.c \
@@ -41,8 +41,8 @@
 # For grub-mkdevicemap.
 #grub_mkdevicemap_SOURCES = util/i386/pc/grub-mkdevicemap.c util/misc.c
 
-# For grub-probefs.
-#grub_probefs_SOURCES = util/i386/pc/grub-probefs.c    \
+# For grub-probe.
+#grub_probefs_SOURCES = util/i386/pc/grub-probe.c      \
 #      util/i386/pc/biosdisk.c util/misc.c util/i386/pc/getroot.c      \
 #      kern/device.c kern/disk.c kern/err.c kern/misc.c fs/fat.c       \
 #      fs/ext2.c kern/parser.c kern/partition.c partmap/pc.c fs/ufs.c  \
Index: conf/i386-efi.rmk
===================================================================
RCS file: /sources/grub/grub2/conf/i386-efi.rmk,v
retrieving revision 1.9
diff -u -r1.9 i386-efi.rmk
--- conf/i386-efi.rmk   28 May 2006 23:01:43 -0000      1.9
+++ conf/i386-efi.rmk   23 Sep 2006 07:16:31 -0000
@@ -6,7 +6,7 @@
 
 # Utilities.
 bin_UTILITIES = grub-mkimage
-#sbin_UTILITIES = grub-setup grub-emu grub-mkdevicemap grub-probefs
+#sbin_UTILITIES = grub-setup grub-emu grub-mkdevicemap grub-probe
 
 # For grub-mkimage.
 grub_mkimage_SOURCES = util/i386/efi/grub-mkimage.c util/misc.c \
@@ -23,8 +23,8 @@
 # For grub-mkdevicemap.
 #grub_mkdevicemap_SOURCES = util/i386/pc/grub-mkdevicemap.c util/misc.c
 
-# For grub-probefs.
-#grub_probefs_SOURCES = util/i386/pc/grub-probefs.c    \
+# For grub-probe.
+#grub_probefs_SOURCES = util/i386/pc/grub-probe.c      \
 #      util/i386/pc/biosdisk.c util/misc.c util/i386/pc/getroot.c      \
 #      kern/device.c kern/disk.c kern/err.c kern/misc.c fs/fat.c       \
 #      fs/ext2.c kern/parser.c kern/partition.c partmap/pc.c fs/ufs.c  \
Index: conf/i386-pc.mk
===================================================================
RCS file: /sources/grub/grub2/conf/i386-pc.mk,v
retrieving revision 1.78
diff -u -r1.78 i386-pc.mk
--- conf/i386-pc.mk     22 Sep 2006 00:27:38 -0000      1.78
+++ conf/i386-pc.mk     23 Sep 2006 07:16:32 -0000
@@ -183,7 +183,7 @@
 
 # Utilities.
 bin_UTILITIES = grub-mkimage
-sbin_UTILITIES = grub-setup grub-emu grub-mkdevicemap grub-probefs
+sbin_UTILITIES = grub-setup grub-emu grub-mkdevicemap grub-probe
 
 # For grub-mkimage.
 grub_mkimage_SOURCES = util/i386/pc/grub-mkimage.c util/misc.c \
@@ -339,20 +339,20 @@
 -include grub_mkdevicemap-util_misc.d
 
 
-# For grub-probefs.
-grub_probefs_SOURCES = util/i386/pc/grub-probefs.c     \
+# For grub-probe.
+grub_probefs_SOURCES = util/i386/pc/grub-probe.c       \
        util/i386/pc/biosdisk.c util/misc.c util/i386/pc/getroot.c      \
        kern/device.c kern/disk.c kern/err.c kern/misc.c fs/fat.c       \
        fs/ext2.c kern/parser.c kern/partition.c partmap/pc.c fs/ufs.c  \
        fs/minix.c fs/hfs.c fs/jfs.c kern/fs.c kern/env.c fs/fshelp.c   \
        fs/xfs.c fs/affs.c fs/sfs.c fs/hfsplus.c
-CLEANFILES += grub-probefs grub_probefs-util_i386_pc_grub_probefs.o 
grub_probefs-util_i386_pc_biosdisk.o grub_probefs-util_misc.o 
grub_probefs-util_i386_pc_getroot.o grub_probefs-kern_device.o 
grub_probefs-kern_disk.o grub_probefs-kern_err.o grub_probefs-kern_misc.o 
grub_probefs-fs_fat.o grub_probefs-fs_ext2.o grub_probefs-kern_parser.o 
grub_probefs-kern_partition.o grub_probefs-partmap_pc.o grub_probefs-fs_ufs.o 
grub_probefs-fs_minix.o grub_probefs-fs_hfs.o grub_probefs-fs_jfs.o 
grub_probefs-kern_fs.o grub_probefs-kern_env.o grub_probefs-fs_fshelp.o 
grub_probefs-fs_xfs.o grub_probefs-fs_affs.o grub_probefs-fs_sfs.o 
grub_probefs-fs_hfsplus.o
+CLEANFILES += grub-probe grub_probefs-util_i386_pc_grub_probefs.o 
grub_probefs-util_i386_pc_biosdisk.o grub_probefs-util_misc.o 
grub_probefs-util_i386_pc_getroot.o grub_probefs-kern_device.o 
grub_probefs-kern_disk.o grub_probefs-kern_err.o grub_probefs-kern_misc.o 
grub_probefs-fs_fat.o grub_probefs-fs_ext2.o grub_probefs-kern_parser.o 
grub_probefs-kern_partition.o grub_probefs-partmap_pc.o grub_probefs-fs_ufs.o 
grub_probefs-fs_minix.o grub_probefs-fs_hfs.o grub_probefs-fs_jfs.o 
grub_probefs-kern_fs.o grub_probefs-kern_env.o grub_probefs-fs_fshelp.o 
grub_probefs-fs_xfs.o grub_probefs-fs_affs.o grub_probefs-fs_sfs.o 
grub_probefs-fs_hfsplus.o
 MOSTLYCLEANFILES += grub_probefs-util_i386_pc_grub_probefs.d 
grub_probefs-util_i386_pc_biosdisk.d grub_probefs-util_misc.d 
grub_probefs-util_i386_pc_getroot.d grub_probefs-kern_device.d 
grub_probefs-kern_disk.d grub_probefs-kern_err.d grub_probefs-kern_misc.d 
grub_probefs-fs_fat.d grub_probefs-fs_ext2.d grub_probefs-kern_parser.d 
grub_probefs-kern_partition.d grub_probefs-partmap_pc.d grub_probefs-fs_ufs.d 
grub_probefs-fs_minix.d grub_probefs-fs_hfs.d grub_probefs-fs_jfs.d 
grub_probefs-kern_fs.d grub_probefs-kern_env.d grub_probefs-fs_fshelp.d 
grub_probefs-fs_xfs.d grub_probefs-fs_affs.d grub_probefs-fs_sfs.d 
grub_probefs-fs_hfsplus.d
 
-grub-probefs: $(grub_probefs_DEPENDENCIES) 
grub_probefs-util_i386_pc_grub_probefs.o grub_probefs-util_i386_pc_biosdisk.o 
grub_probefs-util_misc.o grub_probefs-util_i386_pc_getroot.o 
grub_probefs-kern_device.o grub_probefs-kern_disk.o grub_probefs-kern_err.o 
grub_probefs-kern_misc.o grub_probefs-fs_fat.o grub_probefs-fs_ext2.o 
grub_probefs-kern_parser.o grub_probefs-kern_partition.o 
grub_probefs-partmap_pc.o grub_probefs-fs_ufs.o grub_probefs-fs_minix.o 
grub_probefs-fs_hfs.o grub_probefs-fs_jfs.o grub_probefs-kern_fs.o 
grub_probefs-kern_env.o grub_probefs-fs_fshelp.o grub_probefs-fs_xfs.o 
grub_probefs-fs_affs.o grub_probefs-fs_sfs.o grub_probefs-fs_hfsplus.o
+grub-probe: $(grub_probefs_DEPENDENCIES) 
grub_probefs-util_i386_pc_grub_probefs.o grub_probefs-util_i386_pc_biosdisk.o 
grub_probefs-util_misc.o grub_probefs-util_i386_pc_getroot.o 
grub_probefs-kern_device.o grub_probefs-kern_disk.o grub_probefs-kern_err.o 
grub_probefs-kern_misc.o grub_probefs-fs_fat.o grub_probefs-fs_ext2.o 
grub_probefs-kern_parser.o grub_probefs-kern_partition.o 
grub_probefs-partmap_pc.o grub_probefs-fs_ufs.o grub_probefs-fs_minix.o 
grub_probefs-fs_hfs.o grub_probefs-fs_jfs.o grub_probefs-kern_fs.o 
grub_probefs-kern_env.o grub_probefs-fs_fshelp.o grub_probefs-fs_xfs.o 
grub_probefs-fs_affs.o grub_probefs-fs_sfs.o grub_probefs-fs_hfsplus.o
        $(CC) -o $@ grub_probefs-util_i386_pc_grub_probefs.o 
grub_probefs-util_i386_pc_biosdisk.o grub_probefs-util_misc.o 
grub_probefs-util_i386_pc_getroot.o grub_probefs-kern_device.o 
grub_probefs-kern_disk.o grub_probefs-kern_err.o grub_probefs-kern_misc.o 
grub_probefs-fs_fat.o grub_probefs-fs_ext2.o grub_probefs-kern_parser.o 
grub_probefs-kern_partition.o grub_probefs-partmap_pc.o grub_probefs-fs_ufs.o 
grub_probefs-fs_minix.o grub_probefs-fs_hfs.o grub_probefs-fs_jfs.o 
grub_probefs-kern_fs.o grub_probefs-kern_env.o grub_probefs-fs_fshelp.o 
grub_probefs-fs_xfs.o grub_probefs-fs_affs.o grub_probefs-fs_sfs.o 
grub_probefs-fs_hfsplus.o $(LDFLAGS) $(grub_probefs_LDFLAGS)
 
-grub_probefs-util_i386_pc_grub_probefs.o: util/i386/pc/grub-probefs.c
+grub_probefs-util_i386_pc_grub_probefs.o: util/i386/pc/grub-probe.c
        $(CC) -Iutil/i386/pc -I$(srcdir)/util/i386/pc $(CPPFLAGS) $(CFLAGS) 
-DGRUB_UTIL=1 $(grub_probefs_CFLAGS) -MD -c -o $@ $<
 -include grub_probefs-util_i386_pc_grub_probefs.d
 
Index: conf/i386-pc.rmk
===================================================================
RCS file: /sources/grub/grub2/conf/i386-pc.rmk,v
retrieving revision 1.69
diff -u -r1.69 i386-pc.rmk
--- conf/i386-pc.rmk    22 Sep 2006 00:27:38 -0000      1.69
+++ conf/i386-pc.rmk    23 Sep 2006 07:16:32 -0000
@@ -51,7 +51,7 @@
 
 # Utilities.
 bin_UTILITIES = grub-mkimage
-sbin_UTILITIES = grub-setup grub-emu grub-mkdevicemap grub-probefs
+sbin_UTILITIES = grub-setup grub-emu grub-mkdevicemap grub-probe
 
 # For grub-mkimage.
 grub_mkimage_SOURCES = util/i386/pc/grub-mkimage.c util/misc.c \
@@ -69,8 +69,8 @@
 # For grub-mkdevicemap.
 grub_mkdevicemap_SOURCES = util/i386/pc/grub-mkdevicemap.c util/misc.c
 
-# For grub-probefs.
-grub_probefs_SOURCES = util/i386/pc/grub-probefs.c     \
+# For grub-probe.
+grub_probefs_SOURCES = util/i386/pc/grub-probe.c       \
        util/i386/pc/biosdisk.c util/misc.c util/i386/pc/getroot.c      \
        kern/device.c kern/disk.c kern/err.c kern/misc.c fs/fat.c       \
        fs/ext2.c kern/parser.c kern/partition.c partmap/pc.c fs/ufs.c  \
Index: util/grub-emu.c
===================================================================
RCS file: /sources/grub/grub2/util/grub-emu.c,v
retrieving revision 1.30
diff -u -r1.30 grub-emu.c
--- util/grub-emu.c     13 Jun 2006 22:50:01 -0000      1.30
+++ util/grub-emu.c     23 Sep 2006 07:16:32 -0000
@@ -185,7 +185,7 @@
   /* Make sure that there is a root device.  */
   if (! args.root_dev)
     {
-      args.root_dev = grub_guess_root_device (args.dir ? : DEFAULT_DIRECTORY);
+      args.root_dev = grub_util_biosdisk_get_grub_dev (grub_guess_root_device 
(args.dir ? : DEFAULT_DIRECTORY));
       if (! args.root_dev)
        {
          grub_util_info ("guessing the root device failed, because of `%s'",
Index: util/i386/pc/getroot.c
===================================================================
RCS file: /sources/grub/grub2/util/i386/pc/getroot.c,v
retrieving revision 1.5
diff -u -r1.5 getroot.c
--- util/i386/pc/getroot.c      14 Sep 2006 18:52:50 -0000      1.5
+++ util/i386/pc/getroot.c      23 Sep 2006 07:16:32 -0000
@@ -223,5 +223,5 @@
   if (! os_dev)
     return 0;
 
-  return grub_util_biosdisk_get_grub_dev (os_dev);
+  return os_dev;
 }
Index: util/i386/pc/grub-install.in
===================================================================
RCS file: /sources/grub/grub2/util/i386/pc/grub-install.in,v
retrieving revision 1.9
diff -u -r1.9 grub-install.in
--- util/i386/pc/grub-install.in        14 Sep 2006 18:52:50 -0000      1.9
+++ util/i386/pc/grub-install.in        23 Sep 2006 07:16:32 -0000
@@ -33,7 +33,7 @@
 grub_setup=${sbindir}/grub-setup
 grub_mkimage=${bindir}/grub-mkimage
 grub_mkdevicemap=${sbindir}/grub-mkdevicemap
-grub_probefs=${sbindir}/grub-probefs
+grub_probefs=${sbindir}/grub-probe
 rootdir=
 grub_prefix=/boot/grub
 modules=
@@ -59,7 +59,7 @@
   --grub-setup=FILE       use FILE as grub-setup
   --grub-mkimage=FILE     use FILE as grub-mkimage
   --grub-mkdevicemap=FILE use FILE as grub-mkdevicemap
-  --grub-probefs=FILE     use FILE as grub-probefs
+  --grub-probe=FILE     use FILE as grub-probe
   --no-floppy             do not probe any floppy drive
   --recheck               probe a device map even if it already exists
 
@@ -92,8 +92,8 @@
        grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
     --grub-mkdevicemap=*)
        grub_mkdevicemap=`echo "$option" | sed 's/--grub-mkdevicemap=//'` ;;
-    --grub-probefs=*)
-       grub_probefs=`echo "$option" | sed 's/--grub-probefs=//'` ;;
+    --grub-probe=*)
+       grub_probefs=`echo "$option" | sed 's/--grub-probe=//'` ;;
     --no-floppy)
        no_floppy="--no-floppy" ;;
     --recheck)
Index: util/i386/pc/grub-probefs.c
===================================================================
RCS file: /sources/grub/grub2/util/i386/pc/grub-probefs.c,v
retrieving revision 1.3
diff -u -r1.3 grub-probefs.c
--- util/i386/pc/grub-probefs.c 23 Apr 2006 13:37:36 -0000      1.3
+++ util/i386/pc/grub-probefs.c 23 Sep 2006 07:16:32 -0000
@@ -1,4 +1,4 @@
-/* grub-probefs.c - probe a filesystem module for a given path */
+/* grub-probe.c - probe device information for a given path */
 /*
  *  GRUB  --  GRand Unified Bootloader
  *  Copyright (C) 2005,2006 Free Software Foundation, Inc.
@@ -47,6 +47,12 @@
 
 #define DEFAULT_DEVICE_MAP     DEFAULT_DIRECTORY "/device.map"
 
+#define PRINT_FS       0
+#define PRINT_DRIVE    1
+#define PRINT_DEVICE   2
+
+int print = PRINT_FS;
+
 void
 grub_putchar (int c)
 {
@@ -74,13 +80,33 @@
 probe (const char *path)
 {
   char *device_name;
+  char *drive_name;
   grub_device_t dev;
   grub_fs_t fs;
   
   device_name = grub_guess_root_device (path);
   if (! device_name)
     {
-      fprintf (stderr, "cannot find a GRUB device for %s.\n", path);
+      fprintf (stderr, "cannot find a device for %s.\n", path);
+      return;
+    }
+
+  if (print == PRINT_DEVICE)
+    {
+      printf ("%s\n", device_name);
+      return;
+    }
+
+  drive_name = grub_util_biosdisk_get_grub_dev (device_name);
+  if (! drive_name)
+    {
+      fprintf (stderr, "cannot find a GRUB drive for %s.\n", drive_name);
+      return;
+    }
+
+  if (print == PRINT_DRIVE)
+    {
+      printf ("(%s)\n", drive_name);
       return;
     }
 
@@ -102,6 +128,7 @@
 static struct option options[] =
   {
     {"device-map", required_argument, 0, 'm'},
+    {"target", required_argument, 0, 't'},
     {"help", no_argument, 0, 'h'},
     {"version", no_argument, 0, 'V'},
     {"verbose", no_argument, 0, 'v'},
@@ -113,14 +140,15 @@
 {
   if (status)
     fprintf (stderr,
-            "Try ``grub-probefs --help'' for more information.\n");
+            "Try ``grub-probe --help'' for more information.\n");
   else
     printf ("\
-Usage: grub-probefs [OPTION]... PATH\n\
+Usage: grub-probe [OPTION]... PATH\n\
 \n\
-Probe a filesystem module for a given path.\n\
+Probe device information for a given path.\n\
 \n\
   -m, --device-map=FILE     use FILE as the device map [default=%s]\n\
+  -t, --target=(fs|drive|device)  print filesystem module, GRUB drive or 
system device [default=fs]\n\
   -h, --help                display this message and exit\n\
   -V, --version             print version information and exit\n\
   -v, --verbose             print verbose messages\n\
@@ -138,12 +166,12 @@
   char *dev_map = 0;
   char *path;
   
-  progname = "grub-probefs";
+  progname = "grub-probe";
   
   /* Check for options.  */
   while (1)
     {
-      int c = getopt_long (argc, argv, "m:hVv", options, 0);
+      int c = getopt_long (argc, argv, "m:t:hVv", options, 0);
       
       if (c == -1)
        break;
@@ -157,6 +185,17 @@
            dev_map = xstrdup (optarg);
            break;
 
+         case 't':
+           if (!strcmp (optarg, "fs"))
+             print = PRINT_FS;
+           else if (!strcmp (optarg, "drive"))
+             print = PRINT_DRIVE;
+           else if (!strcmp (optarg, "device"))
+             print = PRINT_DEVICE;
+           else
+             usage (1);
+           break;
+
          case 'h':
            usage (0);
            break;
Index: util/i386/pc/grub-setup.c
===================================================================
RCS file: /sources/grub/grub2/util/i386/pc/grub-setup.c,v
retrieving revision 1.18
diff -u -r1.18 grub-setup.c
--- util/i386/pc/grub-setup.c   4 Jun 2006 15:56:55 -0000       1.18
+++ util/i386/pc/grub-setup.c   23 Sep 2006 07:16:32 -0000
@@ -669,7 +669,7 @@
     }
   else
     {
-      root_dev = grub_guess_root_device (dir ? : DEFAULT_DIRECTORY);
+      root_dev = grub_util_biosdisk_get_grub_dev (grub_guess_root_device (dir 
? : DEFAULT_DIRECTORY));
       if (! root_dev)
        {
          grub_util_info ("guessing the root device failed, because of `%s'",
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to