3eef6e9127
- use rc-service <service> describe to get action list This is for #285.
38 lines
1.0 KiB
Bash
38 lines
1.0 KiB
Bash
#compdef rc-service
|
|
|
|
_rc_services() {
|
|
if [[ -n "${opt_args[(i)-l|--list]}" ]]; then
|
|
_nothing
|
|
else
|
|
_values 'service' $(rc-service -l)
|
|
fi
|
|
}
|
|
|
|
_rc_actions() {
|
|
local service="${line[1]}"
|
|
|
|
if [[ -n "${opt_args[(i)-e|--exists|-r|--resolve]}" ]] || ! $(rc-service -e $service) ; then
|
|
_nothing
|
|
else
|
|
local -a actions=(${(f)"$(rc-service -C $service describe 2>&1)"})
|
|
shift actions
|
|
actions=(${actions# \* })
|
|
actions=(${actions/:*})
|
|
actions=(stop start restart describe zap ${actions[@]})
|
|
_describe -V 'action' actions
|
|
fi
|
|
|
|
}
|
|
|
|
_arguments -C -s \
|
|
'(-e --exists)'{-e,--exists}'[tests if the service exists or not]' \
|
|
'(-l --list)'{-l,--list}'[list all available services]' \
|
|
'(-r --resolve)'{-r,--resolve}'[resolve the service name to an init script]' \
|
|
'(-C --nocolor)'{-C,--nocolor}'[Disable color output]' \
|
|
'(-v --verbose)'{-v,--verbose}'[Run verbosely]' \
|
|
'(-q --quiet)'{-q,--quiet}'[Run quietly]' \
|
|
'1:service:_rc_services' \
|
|
'2:action:_rc_actions'
|
|
|
|
# vim: set et sw=2 ts=2 ft=zsh:
|