diff --git a/examples/catch-all-advanced/README.md b/examples/catch-all-advanced/README.md index 5f59e71e..31eff4e8 100644 --- a/examples/catch-all-advanced/README.md +++ b/examples/catch-all-advanced/README.md @@ -41,21 +41,14 @@ commands: - name: upload short: u help: Upload a file - args: - - name: source - required: true - help: File to upload - flags: - - long: --user - short: -u - arg: user - help: Username to use for logging in + # Configure catch_all for the `upload` sub-command using the extended + # syntax, and specifying that `catch_all` is required (which means that at + # least one extra argument must be provided) + catch_all: + label: Files + help: Files to upload required: true - - long: --password - short: -p - arg: password - help: Password to use for logging in ``` ## Generated script output @@ -158,5 +151,54 @@ other_args: ``` +### `$ ./cli upload -h` + +```shell +cli upload - Upload a file + +Shortcut: u + +Usage: + cli upload FILES... + cli upload --help | -h + +Options: + --help, -h + Show this help + +Arguments: + FILES... + Files to upload + + + +``` + +### `$ ./cli upload` + +```shell +missing required argument: FILES... +usage: cli upload FILES... + + +``` + +### `$ ./cli upload file1 "file 2" file3` + +```shell +# this file is located in 'src/upload_command.sh' +# code for 'cli upload' goes here +# you can edit it freely and regenerate (it will not be overwritten) +args: none + +other_args: +- ${other_args[*]} = file1 file 2 file3 +- ${other_args[0]} = file1 +- ${other_args[1]} = file 2 +- ${other_args[2]} = file3 + + +``` + diff --git a/examples/catch-all-advanced/cli b/examples/catch-all-advanced/cli index 157944d9..4ffd2b5a 100644 --- a/examples/catch-all-advanced/cli +++ b/examples/catch-all-advanced/cli @@ -112,7 +112,7 @@ cli_upload_usage() { echo printf "Usage:\n" - printf " cli upload SOURCE [options]\n" + printf " cli upload FILES...\n" printf " cli upload --help | -h\n" echo @@ -122,22 +122,12 @@ cli_upload_usage() { echo " --help, -h" printf " Show this help\n" echo - # :command.usage_flags - # :flag.usage - echo " --user, -u USER (required)" - printf " Username to use for logging in\n" - echo - - # :flag.usage - echo " --password, -p PASSWORD" - printf " Password to use for logging in\n" - echo + # :command.usage_args printf "Arguments:\n" - # :argument.usage - echo " SOURCE" - printf " File to upload\n" + echo " FILES..." + printf " Files to upload\n" echo fi @@ -248,6 +238,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -313,6 +304,7 @@ cli_download_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -338,66 +330,30 @@ cli_upload_parse_requirements() { # :command.command_filter action="upload" # :command.required_args_filter - if [[ $1 && $1 != -* ]]; then - args[source]=$1 - shift - else - printf "missing required argument: SOURCE\nusage: cli upload SOURCE [options]\n" - exit 1 - fi # :command.required_flags_filter - argstring="$*" - if [[ "$argstring" != *--user* && "$argstring" != *-u* ]]; then - printf "missing required flag: --user, -u USER\n" - exit 1 - fi # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in - # :flag.case - --user | -u ) - if [[ $2 ]]; then - args[--user]="$2" - shift - shift - else - printf "%s\n" "--user requires an argument: --user, -u USER" - exit 1 - fi - ;; - - # :flag.case - --password | -p ) - if [[ $2 ]]; then - args[--password]="$2" - shift - shift - else - printf "%s\n" "--password requires an argument: --password, -p PASSWORD" - exit 1 - fi - ;; - -* ) - printf "invalid option: %s\n" "$key" - exit 1 + other_args+=("$1") + shift ;; * ) # :command.parse_requirements_case - if [[ ! ${args[source]} ]]; then - args[source]=$1 + other_args+=("$1") shift - else - printf "invalid argument: %s\n" "$key" - exit 1 - fi ;; esac done + # :command.catch_all_filter + if [[ ${#other_args[@]} -eq 0 ]]; then + printf "missing required argument: FILES...\nusage: cli upload FILES...\n" + exit 1 + fi # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/catch-all-advanced/src/bashly.yml b/examples/catch-all-advanced/src/bashly.yml index 45821f4e..7a4ca898 100644 --- a/examples/catch-all-advanced/src/bashly.yml +++ b/examples/catch-all-advanced/src/bashly.yml @@ -32,18 +32,11 @@ commands: - name: upload short: u help: Upload a file - args: - - name: source - required: true - help: File to upload - flags: - - long: --user - short: -u - arg: user - help: Username to use for logging in + # Configure catch_all for the `upload` sub-command using the extended + # syntax, and specifying that `catch_all` is required (which means that at + # least one extra argument must be provided) + catch_all: + label: Files + help: Files to upload required: true - - long: --password - short: -p - arg: password - help: Password to use for logging in diff --git a/examples/catch-all-advanced/test.sh b/examples/catch-all-advanced/test.sh index 4bb425c8..ebb9d95b 100644 --- a/examples/catch-all-advanced/test.sh +++ b/examples/catch-all-advanced/test.sh @@ -12,4 +12,8 @@ bashly generate ./cli download -h ./cli download source ./cli download source target -./cli download source target and --additional stuff \ No newline at end of file +./cli download source target and --additional stuff + +./cli upload -h +./cli upload +./cli upload file1 "file 2" file3 \ No newline at end of file diff --git a/examples/catch-all/download b/examples/catch-all/download index 8b54262e..988c4095 100644 --- a/examples/catch-all/download +++ b/examples/catch-all/download @@ -126,6 +126,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/colors/colorly b/examples/colors/colorly index ec4ef05d..33e7614d 100644 --- a/examples/colors/colorly +++ b/examples/colors/colorly @@ -159,6 +159,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/command-default/ftp b/examples/command-default/ftp index 292d7b7e..f9b25354 100644 --- a/examples/command-default/ftp +++ b/examples/command-default/ftp @@ -224,6 +224,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -280,6 +281,7 @@ ftp_upload_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -336,6 +338,7 @@ ftp_download_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/command-groups/ftp b/examples/command-groups/ftp index 0c137db4..cc876dc7 100644 --- a/examples/command-groups/ftp +++ b/examples/command-groups/ftp @@ -297,6 +297,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -353,6 +354,7 @@ ftp_download_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -409,6 +411,7 @@ ftp_upload_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -453,6 +456,7 @@ ftp_login_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -497,6 +501,7 @@ ftp_logout_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/commands-nested/cli b/examples/commands-nested/cli index 387db69e..5f20c8ea 100644 --- a/examples/commands-nested/cli +++ b/examples/commands-nested/cli @@ -367,6 +367,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -437,6 +438,7 @@ cli_dir_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -493,6 +495,7 @@ cli_dir_list_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -555,6 +558,7 @@ cli_dir_remove_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -625,6 +629,7 @@ cli_file_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -681,6 +686,7 @@ cli_file_show_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -737,6 +743,7 @@ cli_file_edit_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/commands/cli b/examples/commands/cli index d4678173..06518461 100644 --- a/examples/commands/cli +++ b/examples/commands/cli @@ -257,6 +257,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -322,6 +323,7 @@ cli_download_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -407,6 +409,7 @@ cli_upload_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/completions/cli b/examples/completions/cli index 3c4d236f..6a98cd62 100644 --- a/examples/completions/cli +++ b/examples/completions/cli @@ -320,6 +320,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -364,6 +365,7 @@ cli_completions_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -429,6 +431,7 @@ cli_download_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -514,6 +517,7 @@ cli_upload_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/config-ini/configly b/examples/config-ini/configly index d9445df5..f10e516e 100644 --- a/examples/config-ini/configly +++ b/examples/config-ini/configly @@ -419,6 +419,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -486,6 +487,7 @@ configly_set_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -542,6 +544,7 @@ configly_get_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -586,6 +589,7 @@ configly_list_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/custom-includes/download b/examples/custom-includes/download index a7a15529..633ddbf3 100644 --- a/examples/custom-includes/download +++ b/examples/custom-includes/download @@ -131,6 +131,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/custom-strings/download b/examples/custom-strings/download index 66ccffd3..b5ce6c8d 100644 --- a/examples/custom-strings/download +++ b/examples/custom-strings/download @@ -147,6 +147,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/default-values/convert b/examples/default-values/convert index b5c2aaec..5fd36f28 100644 --- a/examples/default-values/convert +++ b/examples/default-values/convert @@ -145,6 +145,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments [[ -n ${args[source]} ]] || args[source]="*.jpg" [[ -n ${args[--format]} ]] || args[--format]="png" diff --git a/examples/dependencies/cli b/examples/dependencies/cli index e43577ba..98718798 100644 --- a/examples/dependencies/cli +++ b/examples/dependencies/cli @@ -196,6 +196,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -252,6 +253,7 @@ cli_download_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -296,6 +298,7 @@ cli_upload_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/docker-like/docker b/examples/docker-like/docker index b87655f0..56820f9f 100644 --- a/examples/docker-like/docker +++ b/examples/docker-like/docker @@ -315,6 +315,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -385,6 +386,7 @@ docker_container_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -441,6 +443,7 @@ docker_container_run_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -497,6 +500,7 @@ docker_container_stop_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -560,6 +564,7 @@ docker_image_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -604,6 +609,7 @@ docker_image_ls_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/environment-variables/cli b/examples/environment-variables/cli index aaabae98..68980584 100644 --- a/examples/environment-variables/cli +++ b/examples/environment-variables/cli @@ -184,6 +184,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -233,6 +234,7 @@ cli_verify_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/extensible-delegate/mygit b/examples/extensible-delegate/mygit index 885ade94..c9e51f24 100644 --- a/examples/extensible-delegate/mygit +++ b/examples/extensible-delegate/mygit @@ -210,6 +210,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -254,6 +255,7 @@ mygit_push_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -298,6 +300,7 @@ mygit_pull_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/extensible/cli b/examples/extensible/cli index e4ef6c0c..f31d3c58 100644 --- a/examples/extensible/cli +++ b/examples/extensible/cli @@ -227,6 +227,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -283,6 +284,7 @@ cli_upload_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -339,6 +341,7 @@ cli_download_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/footer/download b/examples/footer/download index 8896e468..30f94958 100644 --- a/examples/footer/download +++ b/examples/footer/download @@ -122,6 +122,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/git-like/git b/examples/git-like/git index dc923b69..41bd9b7b 100644 --- a/examples/git-like/git +++ b/examples/git-like/git @@ -212,6 +212,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -256,6 +257,7 @@ git_status_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -318,6 +320,7 @@ git_commit_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/minimal/download b/examples/minimal/download index 741d5b3b..1e802084 100644 --- a/examples/minimal/download +++ b/examples/minimal/download @@ -151,6 +151,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/minus-v/cli b/examples/minus-v/cli index a66214d8..fadd1f39 100644 --- a/examples/minus-v/cli +++ b/examples/minus-v/cli @@ -134,6 +134,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/multiline/multi b/examples/multiline/multi index 02766876..f00f7e6c 100644 --- a/examples/multiline/multi +++ b/examples/multiline/multi @@ -233,6 +233,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -288,6 +289,7 @@ multi_multiline_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } @@ -337,6 +339,7 @@ multi_regular_parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/examples/whitelist/login b/examples/whitelist/login index 4b00188e..fc58758e 100644 --- a/examples/whitelist/login +++ b/examples/whitelist/login @@ -178,6 +178,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments [[ -n ${args[environment]} ]] || args[environment]="development" [[ -n ${args[--protocol]} ]] || args[--protocol]="ssh" diff --git a/examples/yaml/yaml b/examples/yaml/yaml index d2fc36e3..752ede25 100644 --- a/examples/yaml/yaml +++ b/examples/yaml/yaml @@ -211,6 +211,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter } diff --git a/lib/bashly/models/command.rb b/lib/bashly/models/command.rb index 00947ce4..88790408 100644 --- a/lib/bashly/models/command.rb +++ b/lib/bashly/models/command.rb @@ -54,6 +54,17 @@ def catch_all_help end end + # Returns true if catch_all is required + def catch_all_required? + catch_all.is_a?(Hash) and catch_all['required'] + end + + # Returns a string suitable for catch_all Usage pattern + def catch_all_usage + return nil unless catch_all + catch_all_required? ? catch_all_label : "[#{catch_all_label}]" + end + # Returns only the names of the Commands def command_names commands.map &:name @@ -190,7 +201,7 @@ def usage_string result << arg.usage_string end result << "[options]" unless flags.empty? - result << "[#{catch_all_label}]" if catch_all + result << catch_all_usage if catch_all result.join " " end diff --git a/lib/bashly/views/command/catch_all_filter.erb b/lib/bashly/views/command/catch_all_filter.erb new file mode 100644 index 00000000..55cf921b --- /dev/null +++ b/lib/bashly/views/command/catch_all_filter.erb @@ -0,0 +1,7 @@ +# :command.catch_all_filter +<%- if catch_all_required? -%> +if [[ ${#other_args[@]} -eq 0 ]]; then + printf "<%= strings[:missing_required_argument] % { arg: catch_all_label, usage: usage_string } %>\n" + exit 1 +fi +<%- end -%> diff --git a/lib/bashly/views/command/parse_requirements.erb b/lib/bashly/views/command/parse_requirements.erb index 64821121..d2860b58 100644 --- a/lib/bashly/views/command/parse_requirements.erb +++ b/lib/bashly/views/command/parse_requirements.erb @@ -11,6 +11,7 @@ parse_requirements() { <%= render(:required_args_filter).indent 2 %> <%= render(:required_flags_filter).indent 2 %> <%= render(:parse_requirements_while).indent 2 %> +<%= render(:catch_all_filter).indent 2 %> <%= render(:default_assignments).indent 2 %> <%= render(:whitelist_filter).indent 2 %> } diff --git a/spec/approvals/examples/catch-all-advanced b/spec/approvals/examples/catch-all-advanced index ef9dbcc0..6d6a1e1b 100644 --- a/spec/approvals/examples/catch-all-advanced +++ b/spec/approvals/examples/catch-all-advanced @@ -73,3 +73,34 @@ other_args: - ${other_args[0]} = and - ${other_args[1]} = --additional - ${other_args[2]} = stuff ++ ./cli upload -h +cli upload - Upload a file + +Shortcut: u + +Usage: + cli upload FILES... + cli upload --help | -h + +Options: + --help, -h + Show this help + +Arguments: + FILES... + Files to upload + ++ ./cli upload +missing required argument: FILES... +usage: cli upload FILES... ++ ./cli upload file1 'file 2' file3 +# this file is located in 'src/upload_command.sh' +# code for 'cli upload' goes here +# you can edit it freely and regenerate (it will not be overwritten) +args: none + +other_args: +- ${other_args[*]} = file1 file 2 file3 +- ${other_args[0]} = file1 +- ${other_args[1]} = file 2 +- ${other_args[2]} = file3 diff --git a/spec/bashly/models/command_spec.rb b/spec/bashly/models/command_spec.rb index b71434d0..e8d709cc 100644 --- a/spec/bashly/models/command_spec.rb +++ b/spec/bashly/models/command_spec.rb @@ -72,7 +72,7 @@ let(:fixture) { :catch_all_string } it "returns an uppercase version of it" do - expect(subject.catch_all_label).to eq "EXTRA PARAMS..." + expect(subject.catch_all_label).to eq "EXTRA_PARAMS..." end end @@ -80,7 +80,7 @@ let(:fixture) { :catch_all_hash } it "returns an uppercase version of it" do - expect(subject.catch_all_label).to eq "ADDITIONAL PARAMS..." + expect(subject.catch_all_label).to eq "ADDITIONAL_PARAMS..." end end @@ -115,7 +115,62 @@ expect(subject.catch_all_help).to be_nil end end + end + + describe '#catch_all_required?' do + context "when catch_all is disabled" do + it "returns false" do + expect(subject.catch_all_required?).to be false + end + end + + context "when catch_all['required'] is true" do + let(:fixture) { :catch_all_hash } + + it "returns true" do + expect(subject.catch_all_required?).to be true + end + end + + context "in other cases" do + let(:fixture) { :catch_all_string } + + it "returns false" do + expect(subject.catch_all_required?).to be false + end + end + end + describe '#catch_all_usage' do + context "when catch_all is disabled" do + it "returns nil" do + expect(subject.catch_all_usage).to be_nil + end + end + + context "when catch_all['required'] is true" do + let(:fixture) { :catch_all_hash } + + it "returns a usage help without []" do + expect(subject.catch_all_usage).to eq "ADDITIONAL_PARAMS..." + end + end + + context "when catch_all['required'] is false" do + let(:fixture) { :catch_all_string } + + it "returns a usage help with []" do + expect(subject.catch_all_usage).to eq "[EXTRA_PARAMS...]" + end + end + + context "when catch_all is true" do + let(:fixture) { :catch_all } + + it "returns [...]" do + expect(subject.catch_all_usage).to eq "[...]" + end + end end describe '#command_names' do diff --git a/spec/fixtures/models/commands.yml b/spec/fixtures/models/commands.yml index dd937bc2..c5808492 100644 --- a/spec/fixtures/models/commands.yml +++ b/spec/fixtures/models/commands.yml @@ -119,14 +119,15 @@ :catch_all_string: name: get help: get something from somewhere - catch_all: extra params + catch_all: extra_params :catch_all_hash: name: get help: get something from somewhere catch_all: - label: additional params + label: additional_params help: Any additional argument or flag + required: true :completions_simple: name: get diff --git a/spec/fixtures/workspaces/flag-args-with-dash/argflag b/spec/fixtures/workspaces/flag-args-with-dash/argflag index c3e11a95..90bef51b 100644 --- a/spec/fixtures/workspaces/flag-args-with-dash/argflag +++ b/spec/fixtures/workspaces/flag-args-with-dash/argflag @@ -134,6 +134,7 @@ parse_requirements() { esac done + # :command.catch_all_filter # :command.default_assignments # :command.whitelist_filter }