cmd_fs_usage: Implement --help

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2023-06-10 20:59:22 -04:00
parent f43c9702e0
commit 7a66cf70c5
3 changed files with 25 additions and 14 deletions

View File

@ -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);

View File

@ -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);

1
cmds.h
View File

@ -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);