From 439b7ce868810427712ca146b94b7fb004abfbb4 Mon Sep 17 00:00:00 2001 From: William Giokas <1007380@gmail.com> Date: Mon, 29 Jul 2013 14:13:29 -0500 Subject: [PATCH] zsh_completion: Split out zsh _machinectl --- Makefile.am | 3 ++ shell-completion/zsh/_machinectl | 47 ++++++++++++++++++++++++++++++ shell-completion/zsh/_systemd | 49 +------------------------------- 3 files changed, 51 insertions(+), 48 deletions(-) create mode 100644 shell-completion/zsh/_machinectl diff --git a/Makefile.am b/Makefile.am index 4ac09cf92..3713d0dd6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3632,6 +3632,9 @@ dist_dbussystemservice_DATA += \ dist_dbuspolicy_DATA += \ src/machine/org.freedesktop.machine1.conf +dist_zshcompletion_DATA += \ + shell-completion/zsh/_machinectl + SYSTEM_UNIT_ALIASES += \ systemd-machined.service dbus-org.freedesktop.machine1.service diff --git a/shell-completion/zsh/_machinectl b/shell-completion/zsh/_machinectl new file mode 100644 index 000000000..89196a568 --- /dev/null +++ b/shell-completion/zsh/_machinectl @@ -0,0 +1,47 @@ +#compdef machinectl + +(( $+functions[_machinectl_command] )) || _machinectl_command() +{ + local -a _machinectl_cmds + _machinectl_cmds=( + "list:List currently running VMs/containers" + "status:Show VM/container status" + "show:Show properties of one or more VMs/containers" + "terminate:Terminate one or more VMs/containers" + "kill:Send signal to process or a VM/container" + ) + if (( CURRENT == 1 )); then + _describe -t commands 'machinectl command' _machinectl_cmds || compadd "$@" + else + local curcontext="$curcontext" + cmd="${${_machinectl_cmds[(r)$words[1]:*]%%:*}}" + if (( $#cmd )); then + case $cmd in + list) msg="no options" ;; + *) + _machines=( "${(foa)$(machinectl list | awk '{print $1}')}" ) + if [[ -n "$_machines" ]]; then + _describe 'machines' _machines + else + _message 'no machines' + fi + esac + else + _message "no more options" + fi + fi +} + +_arguments \ + {-h,--help}'[Prints a short help text and exits.]' \ + '--version[Prints a short version string and exits.]' \ + {-p,--property=}'[Limit output to specified property.]:property:(Name Id Timestamp TimestampMonotonic Service Scope Leader Class State RootDirectory)' \ + {-a,--all}'[Show all proerties]' \ + (-l,--full)'[Do not ellipsize cgroup members]' \ + '--no-pager[Do not pipe output into a pager]' \ + '--no-ask-password[Do not ask for system passwords]' \ + '--kill-who=[Who to send signal to]:killwho:(leader all)' \ + {-s,--signal=}'[Which signal to send]:signal:_signals' \ + {-H,--host=}'[Show information for remote host]:userathost:_hosts_or_user_at_host' \ + {-P,--privileged}'[Acquire privileges before execution]' \ + '*::machinectl command:_machinectl_command' diff --git a/shell-completion/zsh/_systemd b/shell-completion/zsh/_systemd index d0e1f3d4f..8eced095d 100644 --- a/shell-completion/zsh/_systemd +++ b/shell-completion/zsh/_systemd @@ -1,4 +1,4 @@ -#compdef systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-delta systemd-detect-virt systemd-machine-id-setup systemd-notify systemd-tmpfiles systemd-tty-ask-password-agent machinectl +#compdef systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-delta systemd-detect-virt systemd-machine-id-setup systemd-notify systemd-tmpfiles systemd-tty-ask-password-agent _ctls() { @@ -98,21 +98,6 @@ _ctls() '--plymouth[Ask question with plymouth(8).]' \ '--console[Ask question on /dev/console.]' ;; - machinectl) - _arguments \ - {-h,--help}'[Prints a short help text and exits.]' \ - '--version[Prints a short version string and exits.]' \ - {-p,--property=}'[Limit output to specified property.]:property:(Name Id Timestamp TimestampMonotonic Service Scope Leader Class State RootDirectory)' \ - {-a,--all}'[Show all proerties]' \ - (-l,--full)'[Do not ellipsize cgroup members]' \ - '--no-pager[Do not pipe output into a pager]' \ - '--no-ask-password[Do not ask for system passwords]' \ - '--kill-who=[Who to send signal to]:killwho:(leader all)' \ - {-s,--signal=}'[Which signal to send]:signal:_signals' \ - {-H,--host=}'[Show information for remote host]:userathost:_hosts_or_user_at_host' \ - {-P,--privileged}'[Acquire privileges before execution]' \ - '*::machinectl command:_machinectl_command' - ;; *) _message 'eh?' ;; esac } @@ -130,38 +115,6 @@ _outputmodes() { _describe -t output 'output mode' _output_opts || compadd "$@" } -(( $+functions[_machinectl_command] )) || _machinectl_command() -{ - local -a _machinectl_cmds - _machinectl_cmds=( - "list:List currently running VMs/containers" - "status:Show VM/container status" - "show:Show properties of one or more VMs/containers" - "terminate:Terminate one or more VMs/containers" - "kill:Send signal to process or a VM/container" - ) - if (( CURRENT == 1 )); then - _describe -t commands 'machinectl command' _machinectl_cmds || compadd "$@" - else - local curcontext="$curcontext" - cmd="${${_machinectl_cmds[(r)$words[1]:*]%%:*}}" - if (( $#cmd )); then - case $cmd in - list) msg="no options" ;; - *) - _machines=( "${(foa)$(machinectl list | awk '{print $1}')}" ) - if [[ -n "$_machines" ]]; then - _describe 'machines' _machines - else - _message 'no machines' - fi - esac - else - _message "no more options" - fi - fi -} - _ctls "$@" #vim: set ft=zsh sw=4 ts=4 et -- 2.30.2