mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef sv
 | |
| 
 | |
| _sv_commands() {
 | |
|   local -a sv_ary
 | |
|   sv_ary=(
 | |
|     'status':'get status of service (and log service if available)'
 | |
|     'up':'start if service is running. If service stops, restart'
 | |
|     'down':'send SIGTERM and SIGCONT if service is running. After it stops, do not restart'
 | |
|     'once':'start if service is not running. Do not restart if it stops'
 | |
|     'pause':'send SIGSTOP if service is running'
 | |
|     'cont':'send SIGCONT if service is running'
 | |
|     'hup':'send SIGHUP if service is running'
 | |
|     'alarm':'send SIGALRM if service is running'
 | |
|     'interrupt':'send SIGINT if service is running'
 | |
|     'quit':'send SIGQUIT if service is running'
 | |
|     '1':'send SIGUSR1 if service is running'
 | |
|     '2':'send SIGUSR2 if service is running'
 | |
|     'term':'send SIGTERM if service is running'
 | |
|     'kill':'send SIGKILL if service is running'
 | |
|     'exit':'send SIGTERM and SIGCONT if service is running. Do not restart service.'
 | |
|   )
 | |
|   _describe -t commands "sv commands" sv_ary -V sv_commands
 | |
| }
 | |
| 
 | |
| _sv_lsb() {
 | |
|   local -a sv_lsb_ary
 | |
|   sv_lsb_ary=(
 | |
|     'start':'up with check/timeout'
 | |
|     'stop':'down with check/timeout'
 | |
|     'reload':'hup with check'
 | |
|     'restart':'down and up with check'
 | |
|     'shutdown':'exit with check/timeout'
 | |
|     'force-stop':'stop with kill on timeout'
 | |
|     'force-reload':'reload with kill on timeout'
 | |
|     'force-restart':'restart with kill on timeout'
 | |
|     'force-shutdown':'shutdown with kill on timeout'
 | |
|     'try-restart':'restart if service is already running'
 | |
|   )
 | |
| 
 | |
|   _describe -t lsb-commands "sv LSM init compat" sv_lsb_ary -V sv_init_compat
 | |
| }
 | |
| 
 | |
| _sv_additional() {
 | |
|   _describe -t additional-commands "sv additional commands" '("check:check status of service")' -V sv_addl_comm
 | |
| }
 | |
| 
 | |
| local curcontext="$curcontext" state line
 | |
| _arguments -C \
 | |
|   '-v[verbose]' \
 | |
|   '-w[wait time]:time (seconds)' \
 | |
|   '1: :->command' \
 | |
|   '*:: :->options'
 | |
| 
 | |
| case $state in
 | |
|   (command)
 | |
|     _alternative \
 | |
|       _sv_commands \
 | |
|       _sv_lsb \
 | |
|       _sv_additional
 | |
|   ;;
 | |
| 
 | |
|   (options)
 | |
|     local -a sv_services
 | |
|     local svdir=${SVDIR:-/etc/service}
 | |
|     sv_services=(
 | |
|       $svdir/*(N)
 | |
|       $svdir/*/log(N)
 | |
|     )
 | |
| 
 | |
|     sv_services=( ${sv_services#$svdir/} )
 | |
|     _describe -t services "sv services" sv_services
 | |
|   ;;
 | |
| esac
 |