mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
c0fd7cbd7a
Instead of having two different listings of machines, use an autoloaded function that can be used by other shell completions in the future. It will also allow editing a single file to change the way machinectl and systemd-run completion for machines.
34 lines
1.1 KiB
Plaintext
34 lines
1.1 KiB
Plaintext
#compdef systemd-run
|
|
|
|
__systemctl() {
|
|
local -a _modes
|
|
_modes=("--user" "--system")
|
|
systemctl ${words:*_modes} --full --no-legend --no-pager "$@" 2>/dev/null
|
|
}
|
|
|
|
__get_slices () {
|
|
__systemctl list-units --all -t slice \
|
|
| { while read -r a b; do echo $a; done; };
|
|
}
|
|
|
|
__slices () {
|
|
local -a _slices
|
|
_slices=(${(fo)"$(__get_slices)"})
|
|
typeset -U _slices
|
|
_describe 'slices' _slices
|
|
}
|
|
|
|
_arguments \
|
|
{-h,--help}'[Show help message]' \
|
|
'--version[Show package version]' \
|
|
'--user[Run as user unit]' \
|
|
{-H+,--host=}'[Operate on remote host]:[user@]host:_sd_hosts_or_user_at_host' \
|
|
{-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \
|
|
'--scope[Run this as scope rather than service]' \
|
|
'--unit=[Run under the specified unit name]:unit name' \
|
|
'--description=[Description for unit]:description' \
|
|
'--slice=[Run in the specified slice]:slices:__slices' \
|
|
{-r,--remain-after-exit}'[Leave service around until explicitly stopped]' \
|
|
'--send-sighup[Send SIGHUP when terminating]' \
|
|
'*::command:_command'
|