1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
#compdef systemd-analyze 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
_ctls()
{
local curcontext="$curcontext" state lstate line
case "$service" in
systemd-analyze)
_arguments \
{-h,--help}'[Show help text.]' \
'--user[Shows performance data of user sessions instead of the system manager.]' \
'--order[When generating graph for dot, show only order]' \
'--require[When generating graph for dot, show only requirement]' \
'*::systemd-analyze commands:_systemd_analyze_command'
;;
systemd-ask-password)
_arguments \
{-h,--help}'[Show this help]' \
'--icon=[Icon name]' \
'--timeout=[Timeout in sec]' \
'--no-tty[Ask question via agent even on TTY]' \
'--accept-cached[Accept cached passwords]' \
'--multiple[List multiple passwords if available]'
;;
systemd-cat)
_arguments \
{-h,--help}'[Show this help]' \
'--version[Show package version.]' \
{-t,--identifier=}'[Set syslog identifier.]' \
{-p,--priority=}'[Set priority value.]:value:({0..7})' \
'--level-prefix=[Control whether level prefix shall be parsed.]:boolean:(1 0)' \
':Message'
;;
systemd-cgls)
_arguments \
{-h,--help}'[Show this help]' \
'--version[Show package version]' \
'--no-pager[Do not pipe output into a pager]' \
{-a,--all}'[Show all groups, including empty]' \
'-k[Include kernel threads in output]' \
':cgroups:(cpuset cpu cpuacct memory devices freezer net_cls blkio)'
;;
systemd-cgtop)
_arguments \
{-h,--help}'[Show this help]' \
'--version[Print version and exit]' \
'(-c -m -i -t)-p[Order by path]' \
'(-c -p -m -i)-t[Order by number of tasks]' \
'(-m -p -i -t)-c[Order by CPU load]' \
'(-c -p -i -t)-m[Order by memory load]' \
'(-c -m -p -t)-i[Order by IO load]' \
{-d,--delay=}'[Specify delay]' \
{-n,--iterations=}'[Run for N iterations before exiting]' \
{-b,--batch}'[Run in batch mode, accepting no input]' \
'--depth=[Maximum traversal depth]'
;;
systemd-delta)
_arguments \
{-h,--help}'[Show this help]' \
'--version[Show package version]' \
'--no-pager[Do not pipe output into a pager]' \
'--diff=[Show a diff when overridden files differ]:boolean:(1 0)' \
{-t,--type=}'[Only display a selected set of override types]:types:(masked equivalent redirected overridden unchanged)' \
':SUFFIX:(tmpfiles.d sysctl.d systemd/system)'
;;
systemd-detect-virt)
_arguments \
{-h,--help}'[Show this help]' \
'--version[Show package version]' \
{-c,--container}'[Only detect whether we are run in a container]' \
{-v,--vm}'[Only detect whether we are run in a VM]' \
{-q,--quiet}"[Don't output anything, just set return value]"
;;
systemd-machine-id-setup)
_arguments \
{-h,--help}'[Show this help]' \
'--version[Show package version]'
;;
systemd-notify)
_arguments \
{-h,--help}'[Show this help]' \
'--version[Show package version]' \
'--ready[Inform the init system about service start-up completion.]' \
'--pid=[Inform the init system about the main PID of the daemon]' \
'--status=[Send a free-form status string for the daemon to the init systemd]' \
'--booted[Returns 0 if the system was booted up with systemd]' \
'--readahead=[Controls disk read-ahead operations]:arguments:(cancel done noreply)'
;;
systemd-tmpfiles)
_arguments \
'--create[Create, set ownership/permissions based on the config files.]' \
'--clean[Clean up all files and directories with an age parameter configured.]' \
'--remove[All files and directories marked with r, R in the configuration files are removed.]' \
'--prefix=[Only apply rules that apply to paths with the specified prefix.]' \
'--exclude-prefix=[Ignore rules that apply to paths with the specified prefix.]' \
'--help[Prints a short help text and exits.]' \
'*::files:_files'
;;
systemd-tty-ask-password-agent)
_arguments \
{-h,--help}'[Prints a short help text and exits.]' \
'--version[Prints a short version string and exits.]' \
'--list[Lists all currently pending system password requests.]' \
'--query[Process all currently pending system password requests by querying the user on the calling TTY.]' \
'--watch[Continuously process password requests.]' \
'--wall[Forward password requests to wall(1).]' \
'--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
}
_systemd_analyze_command(){
local -a _systemd_analyze_cmds
# Descriptions taken from systemd-analyze --help.
_systemd_analyze_cmds=(
'time:Print time spent in the kernel before reaching userspace'
'blame:Print list of running units ordered by time to init'
'critical-chain:Print a tree of the time critical chain of units'
'plot:Output SVG graphic showing service initialization'
'dot:Dump dependency graph (in dot(1) format)'
)
if (( CURRENT == 1 )); then
_describe "options" _systemd_analyze_cmds
else
_message "no more options"
fi
}
_hosts_or_user_at_host()
{
_alternative \
'users-hosts:: _user_at_host' \
'hosts:: _hosts'
}
_outputmodes() {
local -a _output_opts
_output_opts=(short short-monotonic verbose export json json-pretty json-see cat)
_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
|