Skip to content

Commit db456cd

Browse files
KaiSforzakeszybz
authored andcommitted
zsh_completion: Split out zsh _hostnamectl
1 parent 799d54b commit db456cd

File tree

3 files changed

+42
-33
lines changed

3 files changed

+42
-33
lines changed

Makefile.am

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3363,6 +3363,9 @@ bin_PROGRAMS += \
33633363
dist_bashcompletion_DATA += \
33643364
shell-completion/bash/hostnamectl
33653365

3366+
dist_zshcompletion_DATA += \
3367+
shell-completion/zsh/_hostnamectl
3368+
33663369
endif
33673370

33683371
polkitpolicy_in_files += \

shell-completion/zsh/_hostnamectl

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#compdef hostnamectl
2+
3+
_hosts_or_user_at_host() {
4+
_alternative \
5+
'users-hosts:: _user_at_host' \
6+
'hosts:: _hosts'
7+
}
8+
9+
_hostnamectl_command() {
10+
local -a _hostnamectl_cmds
11+
_hostnamectl_cmds=(
12+
"status:Show current hostname settings"
13+
"set-hostname:Set system hostname"
14+
"set-icon-name:Set icon name for host"
15+
)
16+
if (( CURRENT == 1 )); then
17+
_describe -t commands 'hostnamectl commands' _hostnamectl_cmds || compadd "$@"
18+
else
19+
local curcontext="$curcontext"
20+
cmd="${${_hostnamectl_cmds[(r)$words[1]:*]%%:*}}"
21+
if (( $#cmd )); then
22+
[[ $cmd == status ]] && msg="no options" || msg="options for $cmd"
23+
_message "$msg"
24+
else
25+
_message "unknown hostnamectl command: $words[1]"
26+
fi
27+
fi
28+
}
29+
30+
_arguments -s \
31+
{-h,--help}'[Show this help]' \
32+
'--version[Show package version]' \
33+
'--transient[Only set transient hostname]' \
34+
'--static[Only set static hostname]' \
35+
'--pretty[Only set pretty hostname]' \
36+
'--no-ask-password[Do not prompt for password]' \
37+
{-H,--host=}'[Operate on remote host]:userathost:_hosts_or_user_at_host' \
38+
'*::hostnamectl commands:_hostnamectl_command'

shell-completion/zsh/_systemd

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,9 @@
1-
#compdef journalctl hostnamectl localectl timedatectl systemd-coredumpctl udevadm systemd-analyze systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-delta systemd-detect-virt systemd-inhibit systemd-machine-id-setup systemd-notify systemd-nspawn systemd-tmpfiles systemd-tty-ask-password-agent machinectl
1+
#compdef journalctl localectl timedatectl systemd-coredumpctl udevadm systemd-analyze systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-delta systemd-detect-virt systemd-inhibit systemd-machine-id-setup systemd-notify systemd-nspawn systemd-tmpfiles systemd-tty-ask-password-agent machinectl
22

33
_ctls()
44
{
55
local curcontext="$curcontext" state lstate line
66
case "$service" in
7-
hostnamectl)
8-
_arguments -s \
9-
{-h,--help}'[Show this help]' \
10-
'--version[Show package version]' \
11-
'--transient[Only set transient hostname]' \
12-
'--static[Only set static hostname]' \
13-
'--pretty[Only set pretty hostname]' \
14-
'--no-ask-password[Do not prompt for password]' \
15-
{-H,--host=}'[Operate on remote host]:userathost:_hosts_or_user_at_host' \
16-
'*::hostnamectl commands:_hostnamectl_command'
17-
;;
187
journalctl)
198
_arguments -s \
209
'--since=[Start showing entries newer or of the specified date]:YYYY-MM-DD HH\:MM\:SS' \
@@ -323,27 +312,6 @@ _journal_fields() {
323312
_describe 'possible values' _fields
324313
}
325314

326-
_hostnamectl_command() {
327-
local -a _hostnamectl_cmds
328-
_hostnamectl_cmds=(
329-
"status:Show current hostname settings"
330-
"set-hostname:Set system hostname"
331-
"set-icon-name:Set icon name for host"
332-
)
333-
if (( CURRENT == 1 )); then
334-
_describe -t commands 'hostnamectl commands' _hostnamectl_cmds || compadd "$@"
335-
else
336-
local curcontext="$curcontext"
337-
cmd="${${_hostnamectl_cmds[(r)$words[1]:*]%%:*}}"
338-
if (( $#cmd )); then
339-
[[ $cmd == status ]] && msg="no options" || msg="options for $cmd"
340-
_message "$msg"
341-
else
342-
_message "unknown hostnamectl command: $words[1]"
343-
fi
344-
fi
345-
}
346-
347315
_localectl_set-locale() {
348316
local -a _confs _locales
349317
local expl suf

0 commit comments

Comments
 (0)