feat: subcommand arg support

This commit is contained in:
2026-06-02 22:28:48 +02:00
parent 0bd35bd8b1
commit f2b0bc66f1
2 changed files with 43 additions and 6 deletions
+13 -2
View File
@@ -38,7 +38,7 @@ std::assert-eq "should have parsed 1 arg" 1 "${#clap__arguments[@]}"
clap::parse -- --
std::assert-eq "should have parsed 0 flags" 0 "${#clap__options[@]}"
std::assert-eq "should have parsed 1 arg" 1 "${#clap__arguments[@]}"
std::assert "1st arg should be '--'" "${clap__arguments[0]}" "==" "--"
std::assert "1st arg should be '--'" "${clap__arguments[0]}" == "--"
# shellcheck disable=2251
! clap::parse --long-flagarg &>/dev/null
@@ -47,12 +47,23 @@ std::assert "1st arg should be '--'" "${clap__arguments[0]}" "==" "--"
clap::parse --long-flag arg
std::assert-eq "should have parsed 0 args" 0 "${#clap__arguments[@]}"
std::assert "'--long-flag' should be set" "${clap__options[$__long_flag]}" "==" arg
std::assert "'--long-flag' should be set" "${clap__options[$__long_flag]}" == arg
clap::parse --long-bool-flag arg
std::assert-eq "should have parsed 1 args" 1 "${#clap__arguments[@]}"
std::assert-eq "'--long-bool-flag' should be set" 1 "${clap__options[$__long_bool_flag]}"
# --- Subcommands
CLAP__PARSE_IS_SUBCOMMAND=1 clap::parse --long-flag arg subcommand --subc-arg
std::assert-eq "should have parsed 1 subcommand" 1 "${#clap__arguments[@]}"
std::assert "subcommand should be 'subcommand'" subcommand == "${clap__arguments[0]}"
std::assert "'--long-flag' should be 'arg'" arg == "${clap__options[$__long_flag]}"
std::assert-eq "should have 1 subcommand argument" 1 "${#clap__subcommand_arguments[@]}"
std::assert "subcommand argument should be '--subc-arg'" "--subc-arg" == "${clap__subcommand_arguments[0]}"
# --- Help Menus
declare -a clap__help_commands=()
declare -a clap__help_options=()