feat: subcommand arg support
This commit is contained in:
@@ -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=()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user