mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 09:21:26 +03:00
c1072f6473
Since there's no file extension, emacs and other editors do not know that this is supposed to be in shell syntax.
88 lines
2.5 KiB
Bash
88 lines
2.5 KiB
Bash
#compdef hostnamectl -*- shell-script -*-
|
|
# SPDX-License-Identifier: LGPL-2.1+
|
|
|
|
(( $+functions[_hostnamectl_set-hostname] )) ||
|
|
_hostnamectl_set-hostname() {
|
|
if (( CURRENT <= 3 )); then
|
|
_message "new hostname"
|
|
else
|
|
_message "no more options"
|
|
fi
|
|
}
|
|
|
|
(( $+functions[_hostnamectl_set-icon-name] )) ||
|
|
_hostnamectl_set-icon-name() {
|
|
if (( CURRENT <= 3 )); then
|
|
_message "new icon name"
|
|
else
|
|
_message "no more options"
|
|
fi
|
|
}
|
|
|
|
(( $+functions[_hostnamectl_set-chassis] )) ||
|
|
_hostnamectl_set-chassis() {
|
|
if (( CURRENT <= 3 )); then
|
|
_chassis=( desktop laptop convertible server tablet handset watch embedded vm container )
|
|
_describe chassis _chassis
|
|
else
|
|
_message "no more options"
|
|
fi
|
|
}
|
|
|
|
(( $+functions[_hostnamectl_set-deployment] )) ||
|
|
_hostnamectl_set-deployment() {
|
|
if (( CURRENT <= 3 )); then
|
|
_message "new environment"
|
|
else
|
|
_message "no more options"
|
|
fi
|
|
}
|
|
|
|
(( $+functions[_hostnamectl_set-location] )) ||
|
|
_hostnamectl_set-location() {
|
|
if (( CURRENT <= 3 )); then
|
|
_message "new location"
|
|
else
|
|
_message "no more options"
|
|
fi
|
|
}
|
|
|
|
(( $+functions[_hostnamectl_commands] )) ||
|
|
_hostnamectl_commands() {
|
|
local -a _hostnamectl_cmds
|
|
_hostnamectl_cmds=(
|
|
"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 for host"
|
|
"set-location:Set location 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' \
|
|
{-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \
|
|
'*::hostnamectl commands:_hostnamectl_commands'
|