zsh-completion: _rc-service fix flag/command combinations
- handle `rc-service -<flag> <service> <action>` correctly This is for #285.
This commit is contained in:
parent
50d77a4e5d
commit
77f09900a2
@ -1,27 +1,32 @@
|
|||||||
#compdef rc-service
|
#compdef rc-service
|
||||||
|
|
||||||
if (( CURRENT == 2 )); then
|
_rc_services() {
|
||||||
_arguments -s \
|
if [[ -n "${opt_args[(i)-l|--list]}" ]]; then
|
||||||
'(-e --exists)'{-e,--exists}"[tests if the service exists or not]" \
|
_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
|
||||||
|
_values 'action' stop start restart describe zap
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_arguments -C -s \
|
||||||
|
'(-e --exists)'{-e,--exists}'[tests if the service exists or not]' \
|
||||||
'(-l --list)'{-l,--list}'[list all available services]' \
|
'(-l --list)'{-l,--list}'[list all available services]' \
|
||||||
'(-r --resolve)'{-r,--resolve}'[resolve the service name to an init script]' \
|
'(-r --resolve)'{-r,--resolve}'[resolve the service name to an init script]' \
|
||||||
'(-C --nocolor)'{-C,--nocolor}'[Disable color output]' \
|
'(-C --nocolor)'{-C,--nocolor}'[Disable color output]' \
|
||||||
'(-v --verbose)'{-v,--verbose}'[Run verbosely]' \
|
'(-v --verbose)'{-v,--verbose}'[Run verbosely]' \
|
||||||
'(-q --quiet)'{-q,--quiet}'[Run quietly]'
|
'(-q --quiet)'{-q,--quiet}'[Run quietly]' \
|
||||||
_values "service" $(rc-service --list)
|
'1:service:_rc_services' \
|
||||||
else
|
'2:action:_rc_actions'
|
||||||
case $words[2] in
|
|
||||||
-e|--exists|-r|--resolve)
|
|
||||||
(( CURRENT > 3 )) && return 0
|
|
||||||
_values "service" $(rc-service --list)
|
|
||||||
;;
|
|
||||||
-*)
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
_values "action" stop start restart describe zap
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# vim: set et sw=2 ts=2 ft=zsh:
|
# vim: set et sw=2 ts=2 ft=zsh:
|
||||||
|
Loading…
Reference in New Issue
Block a user