Added ZSH completion, moved scripts to a separate directory

This commit is contained in:
SilverFire - Dmitry Naumenko
2016-11-28 16:09:50 +02:00
committed by Carsten Brandt
parent beb140446b
commit 4454d05410
5 changed files with 198 additions and 12 deletions

View File

@@ -0,0 +1,32 @@
# This file implements bash completion for the ./yii command file.
# It completes the commands available by the ./yii command.
# See also:
# - https://debian-administration.org/article/317/An_introduction_to_bash_completion_part_2 on how this works.
# - https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion.html
# - http://www.yiiframework.com/doc-2.0/guide-tutorial-console.html#bash-completion
#
# Usage:
# Temporarily you can source this file in you bash by typing: source yii.bash-completion
# For permanent availability, copy or link this file to /etc/bash_completion.d/
#
_yii()
{
local cur opts yii
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
yii="${COMP_WORDS[0]}"
# only complete first argument
if [[ COMP_CWORD -eq 1 ]] ; then
# fetch available commands from ./yii help/list command
opts=$($yii help/list)
# generate completion suggestions
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
# register completion for the ./yii command
# you may adjust this line if your command file is named differently
complete -F _yii ./yii

View File

@@ -0,0 +1,38 @@
#compdef yii
_yii() {
local state command lastArgument commands options executive
lastArgument=${words[${#words[@]}]}
executive=$words[1]
# lookup for command
for word in ${words[@]:1}; do
if [[ $word != -* ]]; then
command=$word
break
fi
done
[[ $lastArgument == $command ]] && state="command"
[[ $lastArgument != $command ]] && state="option"
case $state in
command)
commands=("${(@f)$(${executive} help/list 2>/dev/null)}")
_describe 'command' commands
;;
option)
options=("${(@f)$(${executive} help/usage ${command} 2>/dev/null)}")
_message -r "$options"
suboptions=("${(@f)$(${executive} help/list-action-options ${command} 2>/dev/null)}")
_describe -V -o -t suboption 'action options' suboptions
;;
*)
esac
}
compdef _yii yii