diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-06-10 20:59:22 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-06-10 20:59:22 -0400 |
commit | 7a66cf70c5d8b02f84595e5648c12e7422e4d03e (patch) | |
tree | f5cee45b013544f92073246ecf845e53ae2bfa15 | |
parent | f43c9702e002db5466916a7c9b619f7ec150da7c (diff) | |
download | bcachefs-tools-7a66cf70c5d8b02f84595e5648c12e7422e4d03e.tar.gz |
cmd_fs_usage: Implement --help
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | bcachefs.c | 6 | ||||
-rw-r--r-- | cmd_fs.c | 32 | ||||
-rw-r--r-- | cmds.h | 1 |
3 files changed, 25 insertions, 14 deletions
@@ -113,8 +113,10 @@ static int fs_cmds(int argc, char *argv[]) { char *cmd = pop_cmd(&argc, argv); - if (argc < 1) - return fs_usage(); + if (argc < 1) { + usage(); + exit(EXIT_FAILURE); + } if (!strcmp(cmd, "usage")) return cmd_fs_usage(argc, argv); @@ -1,4 +1,4 @@ - +#include <getopt.h> #include <stdio.h> #include <sys/ioctl.h> @@ -275,30 +275,40 @@ static void fs_usage_to_text(struct printbuf *out, const char *path) bcache_fs_close(fs); } -int fs_usage(void) +static void fs_usage_usage(void) { - puts("bcachefs fs - manage a running filesystem\n" - "Usage: bcachefs fs <CMD> [OPTION]... path\n" - "\n" - "Commands:\n" - " usage show disk usage\n" - "\n" - "Report bugs to <linux-bcachefs@vger.kernel.org>"); - return 0; + puts("bcachefs fs usage - display detailed filesystem usage\n" + "Usage: bcachefs fs usage [OPTION]... <mountpoint>\n" + "\n" + "Options:\n" + " -h, --human-readable Human readable units\n" + " --help Display this help and exit\n" + "Report bugs to <linux-bcachefs@vger.kernel.org>"); } int cmd_fs_usage(int argc, char *argv[]) { + static const struct option longopts[] = { + { "help", no_argument, NULL, 'H' }, + { NULL } + }; bool human_readable = false; struct printbuf buf = PRINTBUF; char *fs; int opt; - while ((opt = getopt(argc, argv, "h")) != -1) + while ((opt = getopt_long(argc, argv, "h", + longopts, NULL)) != -1) switch (opt) { case 'h': human_readable = true; break; + case 'H': + fs_usage_usage(); + exit(EXIT_SUCCESS); + default: + fs_usage_usage(); + exit(EXIT_FAILURE); } args_shift(optind); @@ -20,7 +20,6 @@ int cmd_run(int argc, char *argv[]); int cmd_stop(int argc, char *argv[]); #endif -int fs_usage(void); int cmd_fs_usage(int argc, char *argv[]); int device_usage(void); |