btrfs-progs: alias btrfs device delete to btrfs device remove
authorOmar Sandoval <osandov@fb.com>
Wed, 24 Jun 2015 16:09:17 +0000 (09:09 -0700)
committerDavid Sterba <dsterba@suse.cz>
Fri, 26 Jun 2015 14:33:39 +0000 (16:33 +0200)
There's an awkward asymmetry between btrfs device add and btrfs device
delete. Resolve this by aliasing delete to remove.

Signed-off-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Documentation/btrfs-device.asciidoc
cmds-device.c
commands.h
help.c

index c56cf5ef48fb8d9a2c654098dc6b2c29c5a68914..2827598a37f5c2f8422eebe15a90d31c4149a615 100644 (file)
@@ -74,9 +74,12 @@ do not perform discard by default
 -f|--force::::
 force overwrite of existing filesystem on the given disk(s)
 
-*delete* <dev> [<dev>...] <path>::
+*remove* <dev> [<dev>...] <path>::
 Remove device(s) from a filesystem identified by <path>.
 
+*delete* <dev> [<dev>...] <path>::
+Alias of remove kept for backwards compatability
+
 *ready* <device>::
 Check device to see if it has all of it's devices in cache for mounting.
 
index c588a6e04a4db5213dfae268b006c2ab67499ae7..0e605002cd10ee84b43ef21957e220ac8c363870 100644 (file)
@@ -143,20 +143,14 @@ error_out:
        return !!ret;
 }
 
-static const char * const cmd_rm_dev_usage[] = {
-       "btrfs device delete <device> [<device>...] <path>",
-       "Remove a device from a filesystem",
-       NULL
-};
-
-static int cmd_rm_dev(int argc, char **argv)
+static int _cmd_rm_dev(int argc, char **argv, const char * const *usagestr)
 {
        char    *mntpnt;
        int     i, fdmnt, ret=0, e;
        DIR     *dirstream = NULL;
 
        if (check_argc_min(argc, 3))
-               usage(cmd_rm_dev_usage);
+               usage(usagestr);
 
        mntpnt = argv[argc - 1];
 
@@ -198,6 +192,28 @@ static int cmd_rm_dev(int argc, char **argv)
        return !!ret;
 }
 
+static const char * const cmd_rm_dev_usage[] = {
+       "btrfs device remove <device> [<device>...] <path>",
+       "Remove a device from a filesystem",
+       NULL
+};
+
+static int cmd_rm_dev(int argc, char **argv)
+{
+       return _cmd_rm_dev(argc, argv, cmd_rm_dev_usage);
+}
+
+static const char * const cmd_del_dev_usage[] = {
+       "btrfs device delete <device> [<device>...] <path>",
+       "Remove a device from a filesystem",
+       NULL
+};
+
+static int cmd_del_dev(int argc, char **argv)
+{
+       return _cmd_rm_dev(argc, argv, cmd_del_dev_usage);
+}
+
 static const char * const cmd_scan_dev_usage[] = {
        "btrfs device scan [(-d|--all-devices)|<device> [<device>...]]",
        "Scan devices for a btrfs filesystem",
@@ -590,7 +606,8 @@ static const char device_cmd_group_info[] =
 const struct cmd_group device_cmd_group = {
        device_cmd_group_usage, device_cmd_group_info, {
                { "add", cmd_add_dev, cmd_add_dev_usage, NULL, 0 },
-               { "delete", cmd_rm_dev, cmd_rm_dev_usage, NULL, 0 },
+               { "delete", cmd_del_dev, cmd_del_dev_usage, NULL, CMD_ALIAS },
+               { "remove", cmd_rm_dev, cmd_rm_dev_usage, NULL, 0 },
                { "scan", cmd_scan_dev, cmd_scan_dev_usage, NULL, 0 },
                { "ready", cmd_ready_dev, cmd_ready_dev_usage, NULL, 0 },
                { "stats", cmd_dev_stats, cmd_dev_stats_usage, NULL, 0 },
index e995d79c9cd964a6cdd27f71a6ef1eee7ba2d128..d2bb093487932b2d468b4d0193c8c7fdb65716af 100644 (file)
@@ -19,6 +19,7 @@
 
 enum {
        CMD_HIDDEN = (1 << 0),  /* should not be in help listings */
+       CMD_ALIAS = (1 << 1),   /* alias of next command in cmd_group */
 };
 
 struct cmd_struct {
diff --git a/help.c b/help.c
index e57d9f280b151df7e88f1f75e4961e36670bef4d..eacce84524d5c57eb61a5f8d39f799274f30689c 100644 (file)
--- a/help.c
+++ b/help.c
@@ -79,11 +79,13 @@ static int do_usage_one_command(const char * const *usagestr,
 
 static int usage_command_internal(const char * const *usagestr,
                                  const char *token, int full, int lst,
-                                 FILE *outf)
+                                 int alias, FILE *outf)
 {
-       unsigned int flags = USAGE_SHORT;
+       unsigned int flags = 0;
        int ret;
 
+       if (!alias)
+               flags |= USAGE_SHORT;
        if (full)
                flags |= USAGE_LONG | USAGE_OPTIONS;
        if (lst)
@@ -108,7 +110,7 @@ static void usage_command_usagestr(const char * const *usagestr,
        FILE *outf = err ? stderr : stdout;
        int ret;
 
-       ret = usage_command_internal(usagestr, token, full, 0, outf);
+       ret = usage_command_internal(usagestr, token, full, 0, 0, outf);
        if (!ret)
                fputc('\n', outf);
 }
@@ -144,7 +146,7 @@ static void usage_command_group_internal(const struct cmd_group *grp, int full,
                        }
 
                        usage_command_internal(cmd->usagestr, cmd->token, full,
-                                              1, outf);
+                                              1, cmd->flags & CMD_ALIAS, outf);
                        continue;
                }