aboutsummaryrefslogtreecommitdiff
path: root/sbin/nvmecontrol
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2019-07-31 03:48:48 +0000
committerAlexander Motin <mav@FreeBSD.org>2019-07-31 03:48:48 +0000
commit628d03169e3e59b0ea5e39c7baa06f5344ae2ca6 (patch)
treee775d161553b4212f1fb265ba9f31f907cb44879 /sbin/nvmecontrol
parent520482f4aa3c81b34c78c7874fc78170663de18e (diff)
downloadsrc-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.c17
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) {