diff --git a/clap_complete/src/shells/bash.rs b/clap_complete/src/shells/bash.rs index 2a97e1de2fe..726078ab366 100644 --- a/clap_complete/src/shells/bash.rs +++ b/clap_complete/src/shells/bash.rs @@ -58,7 +58,11 @@ impl Generator for Bash { esac }} -complete -F _{name} -o nosort -o bashdefault -o default {name} +if [[ \"${{BASH_VERSINFO[0]}}\" -eq 4 && \"${{BASH_VERSINFO[1]}}\" -ge 4 || \"${{BASH_VERSINFO[0]}}\" -gt 4 ]]; then + complete -F _{name} -o nosort -o bashdefault -o default {name} +else + complete -F _{name} -o bashdefault -o default {name} +fi ", name = bin_name, cmd = bin_name.replace('-', "__"), diff --git a/clap_complete/tests/snapshots/aliases.bash b/clap_complete/tests/snapshots/aliases.bash index 15651587242..ff9b1b8324c 100644 --- a/clap_complete/tests/snapshots/aliases.bash +++ b/clap_complete/tests/snapshots/aliases.bash @@ -51,4 +51,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi diff --git a/clap_complete/tests/snapshots/basic.bash b/clap_complete/tests/snapshots/basic.bash index 6ccd2e9deca..eab7065acff 100644 --- a/clap_complete/tests/snapshots/basic.bash +++ b/clap_complete/tests/snapshots/basic.bash @@ -103,4 +103,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi diff --git a/clap_complete/tests/snapshots/feature_sample.bash b/clap_complete/tests/snapshots/feature_sample.bash index e5119ae6109..2506f3beab9 100644 --- a/clap_complete/tests/snapshots/feature_sample.bash +++ b/clap_complete/tests/snapshots/feature_sample.bash @@ -107,4 +107,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi diff --git a/clap_complete/tests/snapshots/home/static/exhaustive/bash/.bashrc b/clap_complete/tests/snapshots/home/static/exhaustive/bash/.bashrc index f28713111d7..490fcbf3c1d 100644 --- a/clap_complete/tests/snapshots/home/static/exhaustive/bash/.bashrc +++ b/clap_complete/tests/snapshots/home/static/exhaustive/bash/.bashrc @@ -1002,5 +1002,9 @@ _exhaustive() { esac } -complete -F _exhaustive -o nosort -o bashdefault -o default exhaustive +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _exhaustive -o nosort -o bashdefault -o default exhaustive +else + complete -F _exhaustive -o bashdefault -o default exhaustive +fi diff --git a/clap_complete/tests/snapshots/quoting.bash b/clap_complete/tests/snapshots/quoting.bash index 7f8236061b7..27064ea48eb 100644 --- a/clap_complete/tests/snapshots/quoting.bash +++ b/clap_complete/tests/snapshots/quoting.bash @@ -273,4 +273,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi diff --git a/clap_complete/tests/snapshots/special_commands.bash b/clap_complete/tests/snapshots/special_commands.bash index 12b3d154348..164eed449ba 100644 --- a/clap_complete/tests/snapshots/special_commands.bash +++ b/clap_complete/tests/snapshots/special_commands.bash @@ -213,4 +213,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi diff --git a/clap_complete/tests/snapshots/sub_subcommands.bash b/clap_complete/tests/snapshots/sub_subcommands.bash index 0b64301de04..ef1925b6f94 100644 --- a/clap_complete/tests/snapshots/sub_subcommands.bash +++ b/clap_complete/tests/snapshots/sub_subcommands.bash @@ -233,4 +233,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi diff --git a/clap_complete/tests/snapshots/subcommand_last.bash b/clap_complete/tests/snapshots/subcommand_last.bash index 86b9cf47dee..32a9dd54bbb 100644 --- a/clap_complete/tests/snapshots/subcommand_last.bash +++ b/clap_complete/tests/snapshots/subcommand_last.bash @@ -137,4 +137,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi diff --git a/clap_complete/tests/snapshots/two_multi_valued_arguments.bash b/clap_complete/tests/snapshots/two_multi_valued_arguments.bash index 262a1fac955..a6e98b5db69 100644 --- a/clap_complete/tests/snapshots/two_multi_valued_arguments.bash +++ b/clap_complete/tests/snapshots/two_multi_valued_arguments.bash @@ -35,4 +35,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi diff --git a/clap_complete/tests/snapshots/value_hint.bash b/clap_complete/tests/snapshots/value_hint.bash index 0fb4696e82d..61e2f61e96e 100644 --- a/clap_complete/tests/snapshots/value_hint.bash +++ b/clap_complete/tests/snapshots/value_hint.bash @@ -115,4 +115,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi diff --git a/clap_complete/tests/snapshots/value_terminator.bash b/clap_complete/tests/snapshots/value_terminator.bash index fb2e3d5e9fd..d37b205a295 100644 --- a/clap_complete/tests/snapshots/value_terminator.bash +++ b/clap_complete/tests/snapshots/value_terminator.bash @@ -35,4 +35,8 @@ _my-app() { esac } -complete -F _my-app -o nosort -o bashdefault -o default my-app +if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then + complete -F _my-app -o nosort -o bashdefault -o default my-app +else + complete -F _my-app -o bashdefault -o default my-app +fi