From dc8add5fb625533492f3b9e747a0aa2595389f55 Mon Sep 17 00:00:00 2001 From: Henry Hsieh Date: Tue, 2 Jan 2024 20:31:50 +0800 Subject: [PATCH] fix: Skip nosort option below bash 4.4 --- clap_complete/src/shells/bash.rs | 6 +++++- clap_complete/tests/snapshots/aliases.bash | 6 +++++- clap_complete/tests/snapshots/basic.bash | 6 +++++- clap_complete/tests/snapshots/feature_sample.bash | 6 +++++- .../tests/snapshots/home/static/exhaustive/bash/.bashrc | 7 +++++-- clap_complete/tests/snapshots/quoting.bash | 6 +++++- clap_complete/tests/snapshots/special_commands.bash | 6 +++++- clap_complete/tests/snapshots/sub_subcommands.bash | 6 +++++- clap_complete/tests/snapshots/subcommand_last.bash | 6 +++++- .../tests/snapshots/two_multi_valued_arguments.bash | 6 +++++- clap_complete/tests/snapshots/value_hint.bash | 6 +++++- clap_complete/tests/snapshots/value_terminator.bash | 6 +++++- 12 files changed, 60 insertions(+), 13 deletions(-) diff --git a/clap_complete/src/shells/bash.rs b/clap_complete/src/shells/bash.rs index 2a97e1de2fea..726078ab3663 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 156515872422..ff9b1b8324cf 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 6ccd2e9deca4..eab7065acff7 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 e5119ae61098..2506f3beab9f 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 f28713111d70..ae5dd6c4268d 100644 --- a/clap_complete/tests/snapshots/home/static/exhaustive/bash/.bashrc +++ b/clap_complete/tests/snapshots/home/static/exhaustive/bash/.bashrc @@ -1002,5 +1002,8 @@ _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 7f8236061b7e..27064ea48eb7 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 12b3d1543481..164eed449bac 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 0b64301de04a..ef1925b6f94f 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 86b9cf47dee1..32a9dd54bbb0 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 262a1fac9550..a6e98b5db690 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 0fb4696e82db..61e2f61e96e3 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 fb2e3d5e9fd5..d37b205a2959 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