mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			23 lines
		
	
	
	
		
			868 B
		
	
	
	
		
			Text
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
	
		
			868 B
		
	
	
	
		
			Text
		
	
	
		
			Executable file
		
	
	
	
	
| #compdef -P */(init|rc[0-9S]#).d/*
 | |
| 
 | |
| local magic cmds what
 | |
| 
 | |
| # This should probably be system specific...
 | |
| 
 | |
| # If the file starts with `#!' we hope that this is a shell script
 | |
| # and get lines looking like <space>foo|bar) with the words in $what.
 | |
| 
 | |
| what='(st(art|op|atus)|(force-|)re(start|load)|debug_(up|down)|dump(|_stats)|add|delete|clean|list)'
 | |
| 
 | |
| read -u0k 2 magic < $words[1] && [[ $magic = '#!' ]] &&
 | |
|     cmds=( ${${(j:|:s:|:)${(M)${(f)"$(< $words[1])"}:#[[:blank:]]#(\'|)${~what}(|${~what})#(\'|)\)}}//[^a-z_]} )
 | |
| 
 | |
| # This would be the pattern to use every line of the form <space>foo).
 | |
| # Some people say this might match too many lines...
 | |
| #
 | |
| #    cmds=( ${${(j:|:s:|:)${(M)${(f)"$(< $words[1])"}:#[[:blank:]]#(\'|)[a-z_|]##(\'|)\)}}//[^a-z_]} )
 | |
| 
 | |
| (( $#cmds )) || zstyle -a ":completion:${curcontext}:commands" commands cmds ||
 | |
|     cmds=(start stop)
 | |
| 
 | |
| _sub_commands $cmds
 |