#compdef gas local curcontext="$curcontext" state line cmds ret=1 _arguments -C \ '(- 1 *)'{-v,--version}'[display version information]' \ '(-h|--help)'{-h,--help}'[show help information]' \ '1: :->cmds' \ '*: :->args' && ret=0 case $state in cmds) cmds=( "version:Prints Gas's version" "use:Uses author" "show:Shows your current user" "list:Lists your authors" "import:Imports current user to gasconfig" "help:Describe available tasks or one specific task" "delete:Deletes author" "add:Adds author to gasconfig" ) _describe -t commands 'gas command' cmds && ret=0 ;; args) case $line[1] in (use|delete) _values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 ;; esac ;; esac return ret