_jaromail (1958B)
1 #compdef jaro 2 3 # Zsh completion for jaromail 4 5 # location hardcoded is Mail 6 jarodir=${JAROMAILDIR:-${HOME}/Mail} 7 8 _jaromail() { 9 local curcontext="$curcontext" state line 10 typeset -A opt_args 11 typeset -alU results 12 13 _arguments \ 14 '1: :->commands'\ 15 '*: :->args' 16 17 case $state in 18 commands) 19 _arguments '1:Commands:(open compose fetch send peek search passwd abook extract import backup merge update filter)' 20 ;; 21 *) 22 _last=$(( ${#words} - 1 )) 23 case $words[$_last] in 24 25 '-a') 26 # for f in `find $jarodir/Accounts -type f | grep -v 'README*'`; do 27 # c=`basename ${f}` 28 # compadd "$@" "$c" 29 # done 30 _acs=(`ls $jarodir/Accounts | grep -v README`) 31 compadd -a _acs 32 ;; 33 34 '-l') 35 _abs=(`ls $jarodir/*.abook`) 36 # for f in `find $jarodir/ -maxdepth 1 -type f -name '*.abook'`; do 37 # c=`basename ${f}` 38 # compadd "$@" "${c[(ws:.:)1]}" 39 # done 40 compadd -a _abs 41 ;; 42 43 fetch|peek) 44 _fds=(`jaro imap listfolders 2>/dev/null`) 45 compadd -a _fds 46 ;; 47 48 open|filter|backup|merge) 49 _mds=(`ls -d $jarodir/*`) 50 md=() 51 for m in $_mds; do 52 [[ -r "$m/cur" ]] && \ 53 md+=(${m:t}) 54 done 55 _multi_parts . md 56 ;; 57 58 compose) 59 _adrs=("${(@f)$(jaro search addr . 2>/dev/null)}") 60 compadd -X "Recipient addresses:" -a _adrs 61 ;; 62 63 *) 64 _files 65 ;; 66 esac 67 esac 68 } 69 70 _jaromail "$@" 71 72 # Local Variables: 73 # mode: sh 74 # End: