make e2label and findfs optional
authorMike Frysinger <vapier@gentoo.org>
Sat, 24 Sep 2005 05:55:03 +0000 (05:55 -0000)
committerMike Frysinger <vapier@gentoo.org>
Sat, 24 Sep 2005 05:55:03 +0000 (05:55 -0000)
e2fsprogs/Config.in
e2fsprogs/tune2fs.c
include/applets.h

index c4022bb89c2c9f1f280b634888ab77b76aa6e390..4a564df60050bf8767d2173bbd244a84dfb0d242 100644 (file)
@@ -25,15 +25,25 @@ config CONFIG_MKE2FS
          symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
 
 config CONFIG_TUNE2FS
-       bool "tune2fs (and e2label/findfs)"
+       bool "tune2fs"
        default n
        help
          tune2fs allows the system administrator to adjust various tunable 
          filesystem parameters on Linux ext2/ext3 filesystems.
 
+config CONFIG_E2LABEL
+       bool "e2label"
+       default n
+       depends on CONFIG_TUNE2FS
+       help
          e2label will display or change the filesystem label on the ext2 
          filesystem located on device.
 
+config CONFIG_FINDFS
+       bool "findfs"
+       default n
+       depends on CONFIG_TUNE2FS
+       help
          findfs will search the disks in the system looking for a filesystem 
          which has a label matching label or a UUID equal to uuid.
 
index e4f904ea09f04251768482555b18c3a2bc66bcee..24c4db3c2f31e8f837a43afd8db5aa718ba10d4c 100644 (file)
@@ -375,7 +375,7 @@ err:
        exit(1);
 }
 
-
+#ifdef CONFIG_E2LABEL
 static void parse_e2label_options(int argc, char ** argv)
 {
        if ((argc < 2) || (argc > 3))
@@ -393,6 +393,7 @@ static void parse_e2label_options(int argc, char ** argv)
        } else 
                print_label++;
 }
+#endif
 
 static time_t parse_time(char *str)
 {
@@ -613,6 +614,7 @@ static void parse_tune2fs_options(int argc, char **argv)
                bb_error_msg_and_die("Unable to resolve '%s'", argv[optind]);
 }
 
+#ifdef CONFIG_FINDFS
 static void do_findfs(int argc, char **argv)
 {
        char *dev;
@@ -624,8 +626,9 @@ static void do_findfs(int argc, char **argv)
        if (!dev)
                bb_error_msg_and_die("Unable to resolve '%s'", argv[1]);
        puts(dev);
-       exit(0);
+       return 0;
 }
+#endif
 
 int tune2fs_main(int argc, char **argv)
 {
@@ -633,13 +636,20 @@ int tune2fs_main(int argc, char **argv)
        ext2_filsys fs;
        struct ext2_super_block *sb;
        io_manager io_ptr;
+#if defined(CONFIG_FINDFS) || defined(CONFIG_E2LABEL)
        char *program_name = basename(argv[0]);
+#endif
 
+#ifdef CONFIG_FINDFS
        if (strcmp(program_name, "findfs") == 0)
-               do_findfs(argc, argv);
+               return do_findfs(argc, argv);
+#endif
+
+#ifdef CONFIG_E2LABEL
        if (strcmp(program_name, "e2label") == 0)
                parse_e2label_options(argc, argv);
        else
+#endif
                parse_tune2fs_options(argc, argv);
 
        io_ptr = unix_io_manager;
index 56ec0a6dee614a6a9227c5f9cc303167b6a7ccea..0b4faacaad966b308041bc1d2416ff0d35f8fddd 100644 (file)
 #ifdef CONFIG_DUMPLEASES
        APPLET(dumpleases, dumpleases_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
 #endif
-#ifdef CONFIG_TUNE2FS
+#ifdef CONFIG_E2LABEL
        APPLET_NOUSAGE("e2label", tune2fs_main, _BB_DIR_SBIN, _BB_SUID_NEVER)
 #endif
 #ifdef CONFIG_ECHO
 #ifdef CONFIG_FIND
        APPLET(find, find_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
 #endif
-#ifdef CONFIG_TUNE2FS
+#ifdef CONFIG_FINDFS
        APPLET_NOUSAGE("findfs", tune2fs_main, _BB_DIR_SBIN, _BB_SUID_NEVER)
 #endif
 #ifdef CONFIG_FOLD