mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef defaults
 | |
| 
 | |
| _defaults_domains(){
 | |
|   if [[ "`eval echo $PREFIX`" != [/~]* ]]; then
 | |
|     local str="$(_call_program domains defaults domains 2>/dev/null)"
 | |
|     local expl
 | |
|     local -a list
 | |
|     list=( ${(s/, /)str} -g -globalDomain )
 | |
|     _wanted domains expl 'defaults database domain' \
 | |
| 	compadd -M 'r:|.=* r:|=*' -a list
 | |
|   else
 | |
|     _files -g '*.plist(-.:r)'
 | |
|   fi
 | |
| }
 | |
| 
 | |
| _defaults_keys(){
 | |
|   local ks
 | |
|   ks=(${${${${(M)${(f)"$(defaults read "$words[2]" 2>/dev/null)"}:#    [^ ]*=*}#    }%% = *}:Q})
 | |
|   local expl
 | |
|   _wanted keys expl 'key' compadd "$ks[@]"
 | |
| }
 | |
| 
 | |
| _defaults(){
 | |
|   local -a _1st_arguments
 | |
|   _1st_arguments=( read read-type write rename delete domains find help )
 | |
| 
 | |
|   local curcontext="$curcontext" state line expl
 | |
|   typeset -A opt_args
 | |
| 
 | |
|   _arguments -C -A '-*' \
 | |
|     '(-currentHost)-host:host:_hosts' \
 | |
|     '(-host)-currentHost' \
 | |
|     '*::command:->subcmd' && return 0
 | |
| 
 | |
|   if (( CURRENT == 1 )); then
 | |
|     _describe -t commands "command" _1st_arguments
 | |
|     return
 | |
|   fi
 | |
| 
 | |
|   case $words[1] in
 | |
|     read|read-type|delete)
 | |
|       _arguments \
 | |
|         "(1)-app:application:_mac_applications" \
 | |
|         "(-app)1:domain:_defaults_domains" \
 | |
|         "2:keys:_defaults_keys"
 | |
|       ;;
 | |
|     write)
 | |
|       _arguments \
 | |
|         "(1)-app:application:_mac_applications" \
 | |
|         "(-app)1:domain:_defaults_domains" \
 | |
|         "2:key:_defaults_keys" \
 | |
|         "*::value"
 | |
|       ;;
 | |
|     rename)
 | |
|       _arguments \
 | |
|         "(1)-app:application:_mac_applications" \
 | |
|         "(-app)1:domain:_defaults_domains" \
 | |
|         "2:old key:_defaults_keys" \
 | |
|         "3:new key:_defaults_keys"
 | |
|       ;;
 | |
|     domains|help)
 | |
|       ;;
 | |
|     find)
 | |
|       _message word
 | |
|       ;;
 | |
|     *)
 | |
|       _message "unknown defaults command: $words[1]"
 | |
|       ;;
 | |
|   esac
 | |
| }
 | |
| 
 | |
| _defaults "$@"
 |