Refinements to removal of zsh hack

This commit is contained in:
Dan Buch 2022-05-22 09:07:03 -04:00
parent e66ce91db1
commit e66017d73a
Signed by: meatballhat
GPG Key ID: A12F782281063434
4 changed files with 29 additions and 18 deletions

View File

@ -228,6 +228,7 @@ func ExampleApp_Run_subcommandNoAction() {
} }
func ExampleApp_Run_bashComplete_withShortFlag() { func ExampleApp_Run_bashComplete_withShortFlag() {
os.Setenv("SHELL", "bash")
os.Args = []string{"greet", "-", "--generate-bash-completion"} os.Args = []string{"greet", "-", "--generate-bash-completion"}
app := NewApp() app := NewApp()
@ -255,6 +256,7 @@ func ExampleApp_Run_bashComplete_withShortFlag() {
} }
func ExampleApp_Run_bashComplete_withLongFlag() { func ExampleApp_Run_bashComplete_withLongFlag() {
os.Setenv("SHELL", "bash")
os.Args = []string{"greet", "--s", "--generate-bash-completion"} os.Args = []string{"greet", "--s", "--generate-bash-completion"}
app := NewApp() app := NewApp()
@ -283,6 +285,7 @@ func ExampleApp_Run_bashComplete_withLongFlag() {
// --similar-flag // --similar-flag
} }
func ExampleApp_Run_bashComplete_withMultipleLongFlag() { func ExampleApp_Run_bashComplete_withMultipleLongFlag() {
os.Setenv("SHELL", "bash")
os.Args = []string{"greet", "--st", "--generate-bash-completion"} os.Args = []string{"greet", "--st", "--generate-bash-completion"}
app := NewApp() app := NewApp()
@ -315,7 +318,7 @@ func ExampleApp_Run_bashComplete_withMultipleLongFlag() {
} }
func ExampleApp_Run_bashComplete() { func ExampleApp_Run_bashComplete() {
// set args for examples sake os.Setenv("SHELL", "bash")
os.Args = []string{"greet", "--generate-bash-completion"} os.Args = []string{"greet", "--generate-bash-completion"}
app := &App{ app := &App{

View File

@ -1,16 +1,20 @@
#compdef $PROG #compdef $PROG
local -a opts _cli_zsh_autocomplete() {
local cur local -a opts
cur=${words[-1]} local cur
if [[ "$cur" == "-"* ]]; then cur=${words[-1]}
if [[ "$cur" == "-"* ]]; then
opts=("${(@f)$(${words[@]:0:#words[@]-1} ${cur} --generate-bash-completion)}") opts=("${(@f)$(${words[@]:0:#words[@]-1} ${cur} --generate-bash-completion)}")
else else
opts=("${(@f)$(${words[@]:0:#words[@]-1} --generate-bash-completion)}") opts=("${(@f)$(${words[@]:0:#words[@]-1} --generate-bash-completion)}")
fi fi
if [[ "${opts[1]}" != "" ]]; then if [[ "${opts[1]}" != "" ]]; then
_describe 'values' opts _describe 'values' opts
else else
_files _files
fi fi
}
compdef _cli_zsh_autocomplete $PROG

View File

@ -1040,12 +1040,16 @@ func TestHideHelpCommand_WithSubcommands(t *testing.T) {
} }
func TestDefaultCompleteWithFlags(t *testing.T) { func TestDefaultCompleteWithFlags(t *testing.T) {
origEnv := os.Environ()
origArgv := os.Args origArgv := os.Args
t.Cleanup(func() { t.Cleanup(func() {
os.Args = origArgv os.Args = origArgv
resetEnv(origEnv)
}) })
os.Setenv("SHELL", "bash")
for _, tc := range []struct { for _, tc := range []struct {
name string name string
c *Context c *Context