veritysetup: add the usual parse_argv() function

More options will be added later, so let's use the usual
setup.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2026-08-13 13:23:05 +02:00
parent d94e88fe14
commit c81b5d36b9
+29 -4
View File
@@ -6,7 +6,7 @@
#include "sd-device.h"
#include "alloc-util.h"
#include "argv-util.h"
#include "build.h"
#include "cryptsetup-util.h"
#include "dlopen-note.h"
#include "extract-word.h"
@@ -486,11 +486,36 @@ static int verb_detach(int argc, char *argv[], uintptr_t _data, void *userdata)
return 0;
}
VERB_COMMON_HELP_HIDDEN(help);
static int parse_argv(int argc, char *argv[], char ***ret_args) {
assert(argc >= 0);
assert(argv);
assert(ret_args);
OptionParser opts = { argc, argv };
FOREACH_OPTION_OR_RETURN(c, &opts)
switch (c) {
OPTION_COMMON_HELP:
return help();
OPTION_COMMON_VERSION:
return version();
}
*ret_args = option_parser_get_args(&opts);
return 1;
}
static int run(int argc, char *argv[]) {
int r;
if (argv_looks_like_help(argc, argv))
return help();
char **args = NULL;
r = parse_argv(argc, argv, &args);
if (r <= 0)
return r;
log_setup();
@@ -503,7 +528,7 @@ static int run(int argc, char *argv[]) {
umask(0022);
return dispatch_verb(strv_skip(argv, 1), /* userdata= */ NULL);
return dispatch_verb(args, /* userdata= */ NULL);
}
DEFINE_MAIN_FUNCTION(run);