bectl: Use geopt() and drop mention of -?.

MFC after:	3 days
PR:		272260
Reviewed by:	kevans
Differential Revision:	https://reviews.freebsd.org/D44405
This commit is contained in:
Dag-Erling Smørgrav 2024-03-18 14:49:18 +01:00
parent b0aaf8beb1
commit e819534f15
2 changed files with 27 additions and 27 deletions

View file

@ -13,7 +13,7 @@
.\" documentation and/or other materials provided with the distribution.
.\"
.\"
.Dd October 5, 2023
.Dd March 18, 2024
.Dt BECTL 8
.Os
.Sh NAME
@ -21,7 +21,7 @@
.Nd Utility to manage boot environments on ZFS
.Sh SYNOPSIS
.Nm
.Op Fl h\&?
.Op Fl h
.Nm
.Op Fl r Ar beroot
.Cm activate
@ -115,10 +115,9 @@ flag to work.
.Ss Supported Subcommands and Flags
.Bl -tag -width activate
.It Xo
.Fl h |
.Fl \&?
.Fl h
.Xc
Print usage information.
Print usage information and exit.
.It Xo
.Cm activate
.Op Fl t | Fl T

View file

@ -64,7 +64,7 @@ usage(bool explicit)
fp = explicit ? stdout : stderr;
fprintf(fp, "%s",
"Usage:\tbectl {-h | -? | subcommand [args...]}\n"
"Usage:\tbectl {-h | subcommand [args...]}\n"
#if SOON
"\tbectl [-r beroot] add (path)*\n"
#endif
@ -545,27 +545,31 @@ main(int argc, char *argv[])
{
struct command_map_entry *cmd;
const char *command;
char *root;
int rc;
char *root = NULL;
int opt, rc;
cmd = NULL;
root = NULL;
if (argc < 2)
return (usage(false));
if (strcmp(argv[1], "-r") == 0) {
if (argc < 4)
return (usage(false));
root = strdup(argv[2]);
command = argv[3];
argc -= 3;
argv += 3;
} else {
command = argv[1];
argc -= 1;
argv += 1;
while ((opt = getopt(argc, argv, "hr:")) != -1) {
switch (opt) {
case 'h':
exit(usage(true));
case 'r':
root = strdup(optarg);
break;
default:
exit(usage(false));
}
}
argc -= optind;
argv += optind;
if (argc == 0)
exit(usage(false));
command = *argv;
optreset = 1;
optind = 1;
/* Handle command aliases */
if (strcmp(command, "umount") == 0)
command = "unmount";
@ -573,9 +577,6 @@ main(int argc, char *argv[])
if (strcmp(command, "ujail") == 0)
command = "unjail";
if ((strcmp(command, "-?") == 0) || (strcmp(command, "-h") == 0))
return (usage(true));
if ((cmd = get_cmd_info(command)) == NULL) {
fprintf(stderr, "Unknown command: %s\n", command);
return (usage(false));