summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Giokas <1007380@gmail.com>2013-07-29 14:13:29 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-08-02 10:44:03 -0400
commit439b7ce868810427712ca146b94b7fb004abfbb4 (patch)
treed0744cc8f2e633aa39f4d41e144f0a1a039c2f67
parent7abfbe7903d8e792850ec39286a3d86e616a6477 (diff)
zsh_completion: Split out zsh _machinectl
-rw-r--r--Makefile.am3
-rw-r--r--shell-completion/zsh/_machinectl47
-rw-r--r--shell-completion/zsh/_systemd49
3 files changed, 51 insertions, 48 deletions
diff --git a/Makefile.am b/Makefile.am
index 4ac09cf922..3713d0dd60 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 0000000000..89196a568f
--- /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 d0e1f3d4f9..8eced095dc 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