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.

30 lines
602 B

#compdef git-hub
#autoload
local state remotes remote branches ret=1
_arguments -C -s -S \
'1::args:->remote' \
'2::args:->branch' && ret=0
case "$state" in
(remote)
remotes=($(
git config -l \
| grep 'remote\.[^.]*\.url' \
| cut -d'.' -f2))
_describe -t branch 'remotes' remotes && ret=0
;;
(branch)
remote="$words[(($CURRENT - 1))]"
branches=($(
git branch -a \
| grep "remotes/${remote}" \
| sed -e 's/[ \*]*//g' -e "s:remotes/${remote}/::g"
))
_describe -t branch 'branches' branches && ret=0
;;
esac
return $ret