_systemd-run revision f49e8bc4722aa581f655f81b87608709b6bcda38
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass#compdef systemd-run
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove__systemctl() {
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove local -a _modes
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass _modes=("--user" "--system")
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass systemctl ${words:*_modes} --full --no-legend --no-pager "$@" 2>/dev/null
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove}
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove__get_slices () {
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove __systemctl list-units --all -t slice \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove | { while read -r a b; do echo $a; done; };
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove}
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove__slices () {
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove local -a _slices
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass _slices=(${(fo)"$(__get_slices)"})
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass typeset -U _slices
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass _describe 'slices' _slices
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass}
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove__get_machines () {
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove machinectl --full --no-pager list | {while read -r a b; do echo $a; done;};
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove}
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove__machines () {
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove local -a _machines
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove _machines=("${(fo)$(__get_machines)}")
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove typeset -U _machines
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove if [[ -n "$_machines" ]]; then
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove _describe 'machines' _machines
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove else
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove _message 'no machines'
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove fi
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove}
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove_arguments \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove {-h,--help}'[Show help message]' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove '--version[Show package version]' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove '--user[Run as user unit]' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove {-H+,--host=}'[Operate on remote host]:[user@]host:_sd_hosts_or_user_at_host' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove {-M+,--machine=}'[Operate on local container]:machines:__machines' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove '--scope[Run this as scope rather than service]' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove '--unit=[Run under the specified unit name]:unit name' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove '--description=[Description for unit]:description' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove '--slice=[Run in the specified slice]:slices:__slices' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove {-r,--remain-after-exit}'[Leave service around until explicitly stopped]' \
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove '--send-sighup[Send SIGHUP when terminating]' \
4613cfd8960e141ac5d088a10bc6124df2e46f24Dav Glass '*::command:_command'
b993d73b72d01aea95784d3f766a44c72db4bd21Ryan Grove