Files
Zbigniew Jędrzejewski-Szmek 7eb1f731ea shell-completion,man: beef up chassis completions and description
Parameters to hostnamectl command are not optional and should not be marked
as such in the man page.

(cherry picked from commit 1ed7749564)
(cherry picked from commit ba838f7f9b)
2014-07-19 17:24:15 -04:00

61 lines
1.6 KiB
Plaintext

#compdef hostnamectl
_hostnamectl_set-hostname() {
if (( CURRENT <= 3 )); then
_message "new hostname"
else
_message "no more options"
fi
}
_hostnamectl_set-icon-name() {
if (( CURRENT <= 3 )); then
_message "new icon name"
else
_message "no more options"
fi
}
_hostnamectl_set-chassis() {
if (( CURRENT <= 3 )); then
_chassis=( desktop laptop server tablet handset watch vm container )
_describe chassis _chassis
else
_message "no more options"
fi
}
_hostnamectl_command() {
local -a _hostnamectl_cmds
_hostnamectl_cmds=(
"status:Show current hostname settings"
"set-hostname:Set system hostname"
"set-icon-name:Set icon name for host"
)
if (( CURRENT == 1 )); then
_describe -t commands 'hostnamectl commands' _hostnamectl_cmds || compadd "$@"
else
local curcontext="$curcontext"
cmd="${${_hostnamectl_cmds[(r)$words[1]:*]%%:*}}"
if (( $#cmd )); then
if [[ $cmd == status ]]; then
_message "no options"
else
_hostnamectl_$cmd
fi
else
_message "unknown hostnamectl command: $words[1]"
fi
fi
}
_arguments -s \
{-h,--help}'[Show this help]' \
'--version[Show package version]' \
'--transient[Only set transient hostname]' \
'--static[Only set static hostname]' \
'--pretty[Only set pretty hostname]' \
'--no-ask-password[Do not prompt for password]' \
{-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \
'*::hostnamectl commands:_hostnamectl_command'