mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef augtool
 | |
| 
 | |
| local curcontext="$curcontext" state line expl ret=1
 | |
| local -A opt_args
 | |
| 
 | |
| _arguments -C -s \
 | |
|   '(-c --typecheck)'{-c,--typecheck}'[perform type checking on lenses]' \
 | |
|   '(-b --backup)'{-b,--backup}'[preserve original files with .augsave extension]' \
 | |
|   '(-n --new)'{-n,--new}'[leave files untouched but save changes with a .augnew extension]' \
 | |
|   '(-r --root)'{-r,--root=}'[specify filesystem root]:root directory:_files -/' \
 | |
|   \*{-I+,--include=}'[add directory containing lenses to search path]:directory:_files -/' \
 | |
|   \*{-t+,--transform=}'[add a file transform]:xfm' \
 | |
|   '(-l --load-file)'{-l+,--load-file=}'[load individual file in the tree]:file:_files' \
 | |
|   '(-f --file *)'{-f+,--file=}'[read commands from specified file]:file:_files' \
 | |
|   '(-i --interactive)'{-i,--interactive}'[read commands from the terminal]' \
 | |
|   '(-e --echo)'{-e,--echo}'[echo commands read from a file or stdin]' \
 | |
|   '(-s --autosave)'{-s,--autosave}'[automatically save at the end of instructions]' \
 | |
|   '(-S --nostdinc)'{-S,--nostdinc}'[do not search the builtin default directories for modules]' \
 | |
|   '(-L --noload)'{-L,--noload}'[do not load any files into the tree on startup]' \
 | |
|   '(-A --noautoload)'{-A,--noautoload}'[do not autoload modules from the search path]' \
 | |
|   '--span[load span positions for nodes related to a file]' \
 | |
|   '--timing[after executing each command, show how long it took]' \
 | |
|   '(- *)--version[print version information]' \
 | |
|   '(-)'{-h,--help}'[print help information]' \
 | |
|   '*:: :->subcommands' && ret=0
 | |
| 
 | |
| [[ -z $state ]] && return ret
 | |
| 
 | |
| if [[ CURRENT -eq 1 || $words[1] == help ]]; then
 | |
|   local -a subcmds
 | |
|   subcmds=( ${${${(M)${(f)"$(_call_program subcommands augtool help 2>/dev/null)"}:#  *}## #}// #- /:} )
 | |
|   _describe -t subcommands "augtool command" subcmds && ret=0
 | |
|   return ret
 | |
| fi
 | |
| 
 | |
| _tags paths
 | |
| while _tags; do
 | |
|   if _requested paths; then
 | |
|     local subcmd="$words[1]"
 | |
|     curcontext="${curcontext%:*}-${subcmd}:"
 | |
|     if compset -P '/files/'; then
 | |
|       _all_labels paths expl path _path_files -W / && ret=0
 | |
|     elif compset -P '/augeas/'; then
 | |
|       compset -P '*/'
 | |
|       local files
 | |
|       files=( ${${(f)"$(_call_program path augtool ls ${words[CURRENT]%/*} 2>/dev/null)"}% = *} )
 | |
|       while _next_label paths expl path; do
 | |
| 	compadd "$expl[@]" -- ${files:#*/} && ret=0
 | |
| 	compadd "$expl[@]" -S '' -- ${(M)files:#*/} && ret=0
 | |
|       done
 | |
|     else
 | |
|       local -a suf
 | |
|       suf=(-S '')
 | |
|       compset -S '/*' || suf=( -S / )
 | |
|       _all_labels paths expl path compadd -P/ "$suf[@]" files augeas && ret=0
 | |
|     fi
 | |
|   fi
 | |
|   (( ret )) || break
 | |
| done
 | |
| 
 | |
| return ret
 |