mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-21 18:27:22 +00:00
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:
parent
b0aaf8beb1
commit
e819534f15
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in a new issue