Fix IFS in bash completion, reduce environment pollution. (#268)

This commit is contained in:
Christian Speckner
2017-08-15 12:36:24 +02:00
committed by Dominik Schulz
parent d567e7ae18
commit 3a63ebd2ff
2 changed files with 6 additions and 14 deletions
+3 -7
View File
@@ -33,21 +33,17 @@ func (s *Action) Complete(*cli.Context) {
// CompletionBash returns a bash script used for auto completion
func (s *Action) CompletionBash(c *cli.Context) error {
out := `#!/bin/bash
PROG=gopass
_cli_bash_autocomplete() {
out := `_gopass_bash_autocomplete() {
local cur opts base
COMPREPLY=()
local IFS=$'\n'
cur="${COMP_WORDS[COMP_CWORD]}"
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-bash-completion )
local IFS=$'\n'
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
}
complete -F _cli_bash_autocomplete $PROG
complete -F _gopass_bash_autocomplete gopass
`
fmt.Println(out)
+3 -7
View File
@@ -15,21 +15,17 @@ func TestCompletion(t *testing.T) {
assert.Contains(t, out, "Source for auto completion in bash")
assert.Contains(t, out, "Source for auto completion in zsh")
bash := `#!/bin/bash
PROG=gopass
_cli_bash_autocomplete() {
bash := `_gopass_bash_autocomplete() {
local cur opts base
COMPREPLY=()
local IFS=$'\n'
cur="${COMP_WORDS[COMP_CWORD]}"
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-bash-completion )
local IFS=$'\n'
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
}
complete -F _cli_bash_autocomplete $PROG`
complete -F _gopass_bash_autocomplete gopass`
out, err = ts.run("completion bash")
assert.NoError(t, err)