diff options
author | William Giokas <1007380@gmail.com> | 2013-07-29 14:05:48 -0500 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2013-08-02 10:43:31 -0400 |
commit | db456cd0c65d0e7375b09b72ae6fb60f09e2eb6e (patch) | |
tree | 8036d7454400e3e50fd6286d11cdbd758085408b | |
parent | 799d54be0b681c0329539fca604261994e7f8c0e (diff) |
zsh_completion: Split out zsh _hostnamectl
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | shell-completion/zsh/_hostnamectl | 38 | ||||
-rw-r--r-- | shell-completion/zsh/_systemd | 34 |
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 |