Adds completion for rsh
This commit is contained in:
parent
d226951ba8
commit
460cfe6254
23
kubectl_complete-rsh
Executable file
23
kubectl_complete-rsh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# If we are completing a flag, use Cobra's builtin completion system.
|
||||||
|
# To know if we are completing a flag we need the last argument starts with a `-` and does not contain an `=`
|
||||||
|
args=("$@")
|
||||||
|
lastArg=${args[((${#args[@]}-1))]}
|
||||||
|
if [[ "$lastArg" == -* ]]; then
|
||||||
|
if [[ "$lastArg" != *=* ]]; then
|
||||||
|
kubectl ns __complete "$@"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# TODO Make sure we are not completing the value of a flag.
|
||||||
|
# TODO Only complete a single argument.
|
||||||
|
# Both are pretty hard to do in a shell script. The better way to do this would be to let
|
||||||
|
# Cobra do all the completions by using `cobra.ValidArgsFunction` in the program.
|
||||||
|
# But the below, although imperfect, is a nice example for plugins that don't use Cobra.
|
||||||
|
|
||||||
|
kubectl get nodes --no-headers -o custom-columns=":metadata.name"
|
||||||
|
|
||||||
|
# Turn off file completion. See the ShellCompDirective documentation within
|
||||||
|
# https://github.com/spf13/cobra/blob/main/shell_completions.md#completion-of-nouns
|
||||||
|
echo :4
|
||||||
|
fi
|
Loading…
x
Reference in New Issue
Block a user