40 lines
1.1 KiB
Text
40 lines
1.1 KiB
Text
|
#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"
|
||
|
"ssh:Creates a new ssh key for an existing gas 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)
|
||
|
VERSION=$(gas -v)
|
||
|
if [[ $VERSION == <1->.*.* ]] || [[ $VERSION == 0.<2->.* ]] || [[ $VERSION == 0.1.<6-> ]] then
|
||
|
_values -S , 'authors' $(cat ~/.gas/gas.authors | sed -n -e 's/^.*\[\(.*\)\]/\1/p') && ret=0
|
||
|
else
|
||
|
_values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0
|
||
|
fi
|
||
|
esac
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
return ret
|