mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2025-12-12 21:38:58 +00:00
feat: show usage on unknown arg (#767)
This commit is contained in:
parent
f0fa7ddc40
commit
4c6475f917
@ -297,10 +297,12 @@ bool parse_options(int argc, const char** argv, ArgOptions& options) {
|
|||||||
bool invalid_arg = false;
|
bool invalid_arg = false;
|
||||||
std::string arg;
|
std::string arg;
|
||||||
for (int i = 1; i < argc; i++) {
|
for (int i = 1; i < argc; i++) {
|
||||||
|
bool found_arg = false;
|
||||||
arg = argv[i];
|
arg = argv[i];
|
||||||
|
|
||||||
for (auto& option : options.string_options) {
|
for (auto& option : options.string_options) {
|
||||||
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
||||||
|
found_arg = true;
|
||||||
if (++i >= argc) {
|
if (++i >= argc) {
|
||||||
invalid_arg = true;
|
invalid_arg = true;
|
||||||
break;
|
break;
|
||||||
@ -314,6 +316,7 @@ bool parse_options(int argc, const char** argv, ArgOptions& options) {
|
|||||||
|
|
||||||
for (auto& option : options.int_options) {
|
for (auto& option : options.int_options) {
|
||||||
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
||||||
|
found_arg = true;
|
||||||
if (++i >= argc) {
|
if (++i >= argc) {
|
||||||
invalid_arg = true;
|
invalid_arg = true;
|
||||||
break;
|
break;
|
||||||
@ -327,6 +330,7 @@ bool parse_options(int argc, const char** argv, ArgOptions& options) {
|
|||||||
|
|
||||||
for (auto& option : options.float_options) {
|
for (auto& option : options.float_options) {
|
||||||
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
||||||
|
found_arg = true;
|
||||||
if (++i >= argc) {
|
if (++i >= argc) {
|
||||||
invalid_arg = true;
|
invalid_arg = true;
|
||||||
break;
|
break;
|
||||||
@ -340,6 +344,7 @@ bool parse_options(int argc, const char** argv, ArgOptions& options) {
|
|||||||
|
|
||||||
for (auto& option : options.bool_options) {
|
for (auto& option : options.bool_options) {
|
||||||
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
||||||
|
found_arg = true;
|
||||||
if (option.keep_true) {
|
if (option.keep_true) {
|
||||||
*option.target = true;
|
*option.target = true;
|
||||||
} else {
|
} else {
|
||||||
@ -353,6 +358,7 @@ bool parse_options(int argc, const char** argv, ArgOptions& options) {
|
|||||||
|
|
||||||
for (auto& option : options.manual_options) {
|
for (auto& option : options.manual_options) {
|
||||||
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
if ((option.short_name.size() > 0 && arg == option.short_name) || (option.long_name.size() > 0 && arg == option.long_name)) {
|
||||||
|
found_arg = true;
|
||||||
int ret = option.cb(argc, argv, i);
|
int ret = option.cb(argc, argv, i);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
invalid_arg = true;
|
invalid_arg = true;
|
||||||
@ -364,6 +370,10 @@ bool parse_options(int argc, const char** argv, ArgOptions& options) {
|
|||||||
if (invalid_arg) {
|
if (invalid_arg) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (!found_arg) {
|
||||||
|
fprintf(stderr, "error: unknown argument: %s\n", arg.c_str());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (invalid_arg) {
|
if (invalid_arg) {
|
||||||
fprintf(stderr, "error: invalid parameter for argument: %s\n", arg.c_str());
|
fprintf(stderr, "error: invalid parameter for argument: %s\n", arg.c_str());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user