chiark / gitweb /
zsh-completion: add missing options for systemd-run
[elogind.git] / shell-completion / zsh / _systemd-run
1 #compdef systemd-run
2
3 __systemctl() {
4         local -a _modes
5         _modes=("--user" "--system")
6         systemctl ${words:*_modes} --full --no-legend --no-pager "$@" 2>/dev/null
7 }
8
9 __get_slices () {
10         __systemctl list-units --all -t slice \
11         | { while read -r a b; do echo $a; done; };
12 }
13
14 __slices () {
15         local -a _slices
16         _slices=(${(fo)"$(__get_slices)"})
17         typeset -U _slices
18         _describe 'slices' _slices
19 }
20
21 __get_machines () {
22         machinectl --full --no-pager list | {while read -r a b; do echo $a; done;};
23 }
24
25 __machines () {
26         local -a _machines
27         _machines=("${(fo)$(__get_machines)}")
28         typeset -U _machines
29         if [[ -n "$_machines" ]]; then
30                 _describe 'machines' _machines
31         else
32                 _message 'no machines'
33         fi
34 }
35
36 _arguments \
37         {-h,--help}'[Show help message]' \
38         '--version[Show package version]' \
39         '--user[Run as user unit]' \
40         {-H+,--host=}'[Operate on remote host]:[user@]host:_sd_hosts_or_user_at_host' \
41         {-M+,--machine=}'[Operate on local container]:machines:__machines' \
42         '--scope[Run this as scope rather than service]' \
43         '--unit=[Run under the specified unit name]:unit name' \
44         '--description=[Description for unit]:description' \
45         '--slice=[Run in the specified slice]:slices:__slices' \
46         {-r,--remain-after-exit}'[Leave service around until explicitly stopped]' \
47         '--send-sighup[Send SIGHUP when terminating]' \
48         '*::command:_command'