mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Merge pull request #89479 from knight42/fix/zsh-completion-file-flag
fix(kubectl): remove trailing space when completing file path
This commit is contained in:
commit
c32b93aa2b
@ -223,49 +223,9 @@ __kubectl_get_comp_words_by_ref() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
__kubectl_filedir() {
|
__kubectl_filedir() {
|
||||||
local RET OLD_IFS w qw
|
# Don't need to do anything here.
|
||||||
|
# Otherwise we will get trailing space without "compopt -o nospace"
|
||||||
__kubectl_debug "_filedir $@ cur=$cur"
|
true
|
||||||
if [[ "$1" = \~* ]]; then
|
|
||||||
# somehow does not work. Maybe, zsh does not call this at all
|
|
||||||
eval echo "$1"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
OLD_IFS="$IFS"
|
|
||||||
IFS=$'\n'
|
|
||||||
if [ "$1" = "-d" ]; then
|
|
||||||
shift
|
|
||||||
RET=( $(compgen -d) )
|
|
||||||
else
|
|
||||||
RET=( $(compgen -f) )
|
|
||||||
fi
|
|
||||||
IFS="$OLD_IFS"
|
|
||||||
|
|
||||||
IFS="," __kubectl_debug "RET=${RET[@]} len=${#RET[@]}"
|
|
||||||
|
|
||||||
for w in ${RET[@]}; do
|
|
||||||
if [[ ! "${w}" = "${cur}"* ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if eval "[[ \"\${w}\" = *.$1 || -d \"\${w}\" ]]"; then
|
|
||||||
qw="$(__kubectl_quote "${w}")"
|
|
||||||
if [ -d "${w}" ]; then
|
|
||||||
COMPREPLY+=("${qw}/")
|
|
||||||
else
|
|
||||||
COMPREPLY+=("${qw}")
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
__kubectl_quote() {
|
|
||||||
if [[ $1 == \'* || $1 == \"* ]]; then
|
|
||||||
# Leave out first character
|
|
||||||
printf %q "${1:1}"
|
|
||||||
else
|
|
||||||
printf %q "$1"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
autoload -U +X bashcompinit && bashcompinit
|
autoload -U +X bashcompinit && bashcompinit
|
||||||
|
Loading…
Reference in New Issue
Block a user