X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=shell-completion%2Fzsh%2F_hostnamectl;h=a7217a1999e14a28860dec1b79c5be6d2da3945f;hp=bc4441d5603e02ecdc6552e3cad6586101bbf199;hb=baade8cc237c37bd8905d86ec6e9c7872d4abe03;hpb=db456cd0c65d0e7375b09b72ae6fb60f09e2eb6e diff --git a/shell-completion/zsh/_hostnamectl b/shell-completion/zsh/_hostnamectl index bc4441d56..a7217a199 100644 --- a/shell-completion/zsh/_hostnamectl +++ b/shell-completion/zsh/_hostnamectl @@ -1,9 +1,36 @@ #compdef hostnamectl -_hosts_or_user_at_host() { - _alternative \ - 'users-hosts:: _user_at_host' \ - 'hosts:: _hosts' +_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 embedded vm container ) + _describe chassis _chassis + else + _message "no more options" + fi +} + +_hostnamectl_set-deployment() { + if (( CURRENT <= 3 )); then + _message "new environment" + else + _message "no more options" + fi } _hostnamectl_command() { @@ -12,6 +39,8 @@ _hostnamectl_command() { "status:Show current hostname settings" "set-hostname:Set system hostname" "set-icon-name:Set icon name for host" + "set-chassis:Set chassis type for host" + "set-deployment:Set deployment environment" ) if (( CURRENT == 1 )); then _describe -t commands 'hostnamectl commands' _hostnamectl_cmds || compadd "$@" @@ -19,8 +48,11 @@ _hostnamectl_command() { local curcontext="$curcontext" cmd="${${_hostnamectl_cmds[(r)$words[1]:*]%%:*}}" if (( $#cmd )); then - [[ $cmd == status ]] && msg="no options" || msg="options for $cmd" - _message "$msg" + if [[ $cmd == status ]]; then + _message "no options" + else + _hostnamectl_$cmd + fi else _message "unknown hostnamectl command: $words[1]" fi @@ -34,5 +66,5 @@ _arguments -s \ '--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:_hosts_or_user_at_host' \ + {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ '*::hostnamectl commands:_hostnamectl_command'