_gas
1165 bytes
1#compdef gas
2
3local curcontext="$curcontext" state line cmds ret=1
4
5_arguments -C \
6 '(- 1 *)'{-v,--version}'[display version information]' \
7 '(-h|--help)'{-h,--help}'[show help information]' \
8 '1: :->cmds' \
9 '*: :->args' && ret=0
10
11case $state in
12 cmds)
13 cmds=(
14 "version:Prints Gas's version"
15 "use:Uses author"
16 "ssh:Creates a new ssh key for an existing gas author"
17 "show:Shows your current user"
18 "list:Lists your authors"
19 "import:Imports current user to gasconfig"
20 "help:Describe available tasks or one specific task"
21 "delete:Deletes author"
22 "add:Adds author to gasconfig"
23 )
24 _describe -t commands 'gas command' cmds && ret=0
25 ;;
26 args)
27 case $line[1] in
28 (use|delete)
29 VERSION=$(gas -v)
30 if [[ $VERSION == <1->.*.* ]] || [[ $VERSION == 0.<2->.* ]] || [[ $VERSION == 0.1.<6-> ]] then
31 _values -S , 'authors' $(cat ~/.gas/gas.authors | sed -n -e 's/^.*\[\(.*\)\]/\1/p') && ret=0
32 else
33 _values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0
34 fi
35 esac
36 ;;
37esac
38
39return ret