#compdef sti # sti --- Stupid Tool Installer # Copyright (C) 2014 Tom Willemse # 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 . 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: