diff options
author | Alexander Motin <mav@FreeBSD.org> | 2019-07-31 03:48:48 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2019-07-31 03:48:48 +0000 |
commit | 628d03169e3e59b0ea5e39c7baa06f5344ae2ca6 (patch) | |
tree | e775d161553b4212f1fb265ba9f31f907cb44879 /sbin/nvmecontrol | |
parent | 520482f4aa3c81b34c78c7874fc78170663de18e (diff) | |
download | src-628d03169e3e59b0ea5e39c7baa06f5344ae2ca6.tar.gz src-628d03169e3e59b0ea5e39c7baa06f5344ae2ca6.zip |
Fix usage printing for nested subcommands.
Instead of `nvmecontrol create` should be `nvmecontrol ns create`, etc.
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=350461
Diffstat (limited to 'sbin/nvmecontrol')
-rw-r--r-- | sbin/nvmecontrol/comnd.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/sbin/nvmecontrol/comnd.c b/sbin/nvmecontrol/comnd.c index d264c10f4f86..d8d97ad11b5b 100644 --- a/sbin/nvmecontrol/comnd.c +++ b/sbin/nvmecontrol/comnd.c @@ -50,10 +50,22 @@ __FBSDID("$FreeBSD$"); static struct cmd top; static void +print_tree(const struct cmd *f) +{ + + if (f->parent != NULL) + print_tree(f->parent); + if (f->name != NULL) + fprintf(stderr, " %s", f->name); +} + +static void print_usage(const struct cmd *f) { - fprintf(stderr, " %s %-15s - %s\n", getprogname(), f->name, f->descr); + fprintf(stderr, " %s", getprogname()); + print_tree(f->parent); + fprintf(stderr, " %-15s - %s\n", f->name, f->descr); } static void @@ -120,7 +132,8 @@ arg_help(int argc __unused, char * const *argv, const struct cmd *f) // XXX walk up the cmd list... if (argv[optind]) fprintf(stderr, "Unknown argument: %s\n", argv[optind]); - fprintf(stderr, "Usage:\n %s %s", getprogname(), argv[0]); + fprintf(stderr, "Usage:\n %s", getprogname()); + print_tree(f); if (opts) fprintf(stderr, " <args>"); if (args) { |