Merge remote-tracking branch 'babab/zsh-comp'

This commit is contained in:
Tom Willemse 2014-09-27 00:17:41 +02:00
commit 160476143b
2 changed files with 57 additions and 1 deletions

View file

@ -3,7 +3,7 @@
#+HTML_HEAD: <link type="text/css" rel="stylesheet" href="https://ryuslash.org/org.css" />
~sti~ is a simplistic tool installer written in Bash. It offers simple
commands to help installing little tools your or otherss have written.
commands to help installing little tools you or others have written.
This document will try to explain to you how to use it.
Bug reports, feature requests, asking for help, and such things can be

56
zsh/_sti Normal file
View file

@ -0,0 +1,56 @@
#compdef sti
# sti --- Stupid Tool Installer
# Copyright (C) 2014 Tom Willemse <tom@ryuslash.org>
# sti is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your
# option) any later version.
# sti is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
# You should have received a copy of the GNU General Public License
# along with sti. If not, see <http://www.gnu.org/licenses/>.
local expl
local -a sti_tools _sti_commands
get_tools() {
if [[ "$state" == tools ]]; then
sti_tools=(${(f)"$(_call_program sti_tools \
sti list | awk '{ print $1 }' 2>/dev/null)"})
_wanted sti_tools expl 'enabled tools' compadd -a sti_tools
fi
}
_sti_commands=(
'help:show help message'
'install:install a tool from a git repository'
'list:list downloaded tools'
'reinit:retry installing the executables of a tool'
'remove:remove an installed tool'
'update:update an installed tool'
)
_arguments '*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "sti command" _sti_commands
return
fi
case "$words[1]" in
h*)
_describe -t commands "sti subcommands" _sti_commands
return 0 ;;
i* | l* )
_arguments && return 0 ;;
r* | u*)
_arguments '*:: :->tools' && return 0
get_tools ;;
esac
# vim: set ft=zsh et ts=2 sw=2 sts=2: