diff options
author | Paul Ackersviller <packersv@users.sourceforge.net> | 2007-04-07 02:56:16 +0000 |
---|---|---|
committer | Paul Ackersviller <packersv@users.sourceforge.net> | 2007-04-07 02:56:16 +0000 |
commit | 184de562668d2f43ffe196a3381aba2db32d9205 (patch) | |
tree | 792c2ec3a57cc9d495cf067834ef0d6dda452edf /Completion/Darwin | |
parent | 5bcbbe40dd2c4bfbc41377f70630a768c8b92b35 (diff) | |
download | zsh-184de562668d2f43ffe196a3381aba2db32d9205.tar.gz zsh-184de562668d2f43ffe196a3381aba2db32d9205.tar.xz zsh-184de562668d2f43ffe196a3381aba2db32d9205.zip |
Merge in users/8380 and users/8522 from trunk.
Diffstat (limited to 'Completion/Darwin')
-rw-r--r-- | Completion/Darwin/Command/_defaults | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/Completion/Darwin/Command/_defaults b/Completion/Darwin/Command/_defaults new file mode 100644 index 000000000..e1b8fd923 --- /dev/null +++ b/Completion/Darwin/Command/_defaults @@ -0,0 +1,71 @@ +#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(e:"reply=\${REPLY%.plist}":)' + 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 + + _arguments -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 "$@" |