80 lines
2.8 KiB
Bash
80 lines
2.8 KiB
Bash
# netplan(5) completion -*- shell-script -*-
|
|
|
|
_netplan_completions_filter() {
|
|
local words="$1"
|
|
local cur=${COMP_WORDS[COMP_CWORD]}
|
|
local result=()
|
|
|
|
if [[ "${cur:0:1}" == "-" ]]; then
|
|
echo "$words"
|
|
|
|
else
|
|
for word in $words; do
|
|
[[ "${word:0:1}" != "-" ]] && result+=("$word")
|
|
done
|
|
|
|
echo "${result[*]}"
|
|
|
|
fi
|
|
}
|
|
|
|
_netplan_completions() {
|
|
local cur=${COMP_WORDS[COMP_CWORD]}
|
|
local compwords=("${COMP_WORDS[@]:1:$COMP_CWORD-1}")
|
|
local compline="${compwords[*]}"
|
|
|
|
case "$compline" in
|
|
'ip leases'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug --root-dir")" -- "$cur" )
|
|
;;
|
|
|
|
'generate'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug --root-dir --mapping")" -- "$cur" )
|
|
;;
|
|
|
|
'rebind'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug")" -- "$cur" )
|
|
;;
|
|
|
|
'status'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug -a --all --diff --diff-only --root-dir --verbose -f --format $(ls /sys/class/net 2> /dev/null)")" -- "$cur" )
|
|
;;
|
|
|
|
'apply'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug --sriov-only --only-ovs-cleanup --state")" -- "$cur" )
|
|
;;
|
|
|
|
'help'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help")" -- "$cur" )
|
|
;;
|
|
|
|
'info'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug --json --yaml")" -- "$cur" )
|
|
;;
|
|
|
|
'get'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug --root-dir")" -- "$cur" )
|
|
;;
|
|
|
|
'set'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug --origin-hint")" -- "$cur" )
|
|
;;
|
|
|
|
'try'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug --config-file --timeout --state")" -- "$cur" )
|
|
;;
|
|
|
|
'ip'*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug help leases")" -- "$cur" )
|
|
;;
|
|
|
|
*)
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_netplan_completions_filter "-h --help --debug help apply generate get info ip set rebind status try")" -- "$cur" )
|
|
;;
|
|
|
|
esac
|
|
} &&
|
|
complete -F _netplan_completions netplan
|
|
|
|
# ex: filetype=sh
|