summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Giokas <1007380@gmail.com>2013-07-29 14:05:48 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-08-02 10:43:31 -0400
commitdb456cd0c65d0e7375b09b72ae6fb60f09e2eb6e (patch)
tree8036d7454400e3e50fd6286d11cdbd758085408b
parent799d54be0b681c0329539fca604261994e7f8c0e (diff)
zsh_completion: Split out zsh _hostnamectl
-rw-r--r--Makefile.am3
-rw-r--r--shell-completion/zsh/_hostnamectl38
-rw-r--r--shell-completion/zsh/_systemd34
3 files changed, 42 insertions, 33 deletions
diff --git a/Makefile.am b/Makefile.am
index 9fa7944f37..ba4035072c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3363,6 +3363,9 @@ bin_PROGRAMS += \
dist_bashcompletion_DATA += \
shell-completion/bash/hostnamectl
+dist_zshcompletion_DATA += \
+ shell-completion/zsh/_hostnamectl
+
endif
polkitpolicy_in_files += \
diff --git a/shell-completion/zsh/_hostnamectl b/shell-completion/zsh/_hostnamectl
new file mode 100644
index 0000000000..bc4441d560
--- /dev/null
+++ b/shell-completion/zsh/_hostnamectl
@@ -0,0 +1,38 @@
+#compdef hostnamectl
+
+_hosts_or_user_at_host() {
+ _alternative \
+ 'users-hosts:: _user_at_host' \
+ 'hosts:: _hosts'
+}
+
+_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
+ [[ $cmd == status ]] && msg="no options" || msg="options for $cmd"
+ _message "$msg"
+ 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:_hosts_or_user_at_host' \
+ '*::hostnamectl commands:_hostnamectl_command'
diff --git a/shell-completion/zsh/_systemd b/shell-completion/zsh/_systemd
index 80a14acb99..ce7ea1ad4d 100644
--- a/shell-completion/zsh/_systemd
+++ b/shell-completion/zsh/_systemd
@@ -1,20 +1,9 @@
-#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
+#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
_ctls()
{
local curcontext="$curcontext" state lstate line
case "$service" in
- hostnamectl)
- _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:_hosts_or_user_at_host' \
- '*::hostnamectl commands:_hostnamectl_command'
- ;;
journalctl)
_arguments -s \
'--since=[Start showing entries newer or of the specified date]:YYYY-MM-DD HH\:MM\:SS' \
@@ -323,27 +312,6 @@ _journal_fields() {
_describe 'possible values' _fields
}
-_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
- [[ $cmd == status ]] && msg="no options" || msg="options for $cmd"
- _message "$msg"
- else
- _message "unknown hostnamectl command: $words[1]"
- fi
- fi
-}
-
_localectl_set-locale() {
local -a _confs _locales
local expl suf