#compdef dropbox if [[ CURRENT -eq 2 || $words[2] = help ]]; then local -a line progs _call_program command dropbox help | while read -A line; do if [[ $line[1] = [a-z]## ]]; then progs+=("${line[1]}:${line[2,-1]}") fi done _describe -t command 'Dropbox command' progs else local -a opts case $words[2] in (exclude) _path_files -g '*(/)' ;; (filestatus) shift words (( CURRENT-- )) _arguments -s : \ '(-l --list)'{-l,--list}'[use format like ls]' \ '(-a --all)'{-a,--all}'[do not ignore entries starting .]' \ '*:File to list:_files' ;; (ls|puburl|sharelink) _files ;; (autostart|lansync) opts=("y:turn $words[2] on" "n:turn $words[2] off") _describe "$words[2] behaviour" opts ;; (proxy) _arguments \ '2:proxy mode:(none auto manual)' \ '3:proxy type for manual mode:(http socks4 socks5)' \ '4:proxy host for manual mode:_hosts' \ '5:proxy port for manual mode:_ports' \ '6:proxy user for manual mode:_users' \ '7:proxy password for manual mode:' ;; (start) shift words (( CURRENT-- )) _arguments -s : '(-i --install)'{-i,--install}'[auto install dropboxd]' ;; (throttle) _arguments \ '2:download limit in KB/s:(unlimited)' \ '3:upload limit in KB/s:(unlimited)' ;; (*) _default ;; esac fi