You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.1 KiB
39 lines
1.1 KiB
#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
|
|
|