diff options
Diffstat (limited to 'completion/bash-completion.sh')
-rwxr-xr-x | completion/bash-completion.sh | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/completion/bash-completion.sh b/completion/bash-completion.sh index 6a346f5..f5284cf 100755 --- a/completion/bash-completion.sh +++ b/completion/bash-completion.sh @@ -1,21 +1,35 @@ -#!bash -# -# this is bash completion function file for ponysay.py. -# generated by genzshcomp(ver: 0.5.1) -# +#!/usr/bin/env bash -_ponysay.py() +_ponysay() { - local cur - local cmd + local cur prev + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} - cur=${COMP_WORDS[$COMP_CWORD]} - cmd=( ${COMP_WORDS[@]} ) + declare -ga _ponysay_ponies _ponysay_balloons _ponythink_balloons + [[ 0 < "${#_ponysay_ponies}" ]] || _ponysay_ponies=( $(ponysay -p list) ) + [[ 0 < "${#_ponysay_balloons}" ]] || _ponysay_balloons=( $(ponysay -b list) ) + [[ 0 < "${#_ponythink_balloons}" ]] || _ponythink_balloons=( $(ponythink -b list) ) - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W "-h --help --pony -p --quote -q --center -c --center-text -C --width -w --balloon -b" -- $cur ) ) - return 0 + if [[ "$cur" = -* ]] + then COMPREPLY=( $( compgen -W "-h --help --pony -p --quote -q --center -c --center-text -C --width -w --balloon -b" -- "$cur" ) ) + return 0 + fi + + if [[ "$prev" =~ -[^-]*p$ || "$prev" = "--pony" ]] + then COMPREPLY=( $( compgen -W "${_ponysay_ponies[*]}" -- "$cur" ) ) + return 0 + fi + + if [[ "$prev" =~ -[^-]*b$ || "$prev" = "--balloon" ]] + then + if [[ "$COMP_LINE" == ponythink* ]] + then COMPREPLY=( $( compgen -W "${_ponythink_balloons[*]}" -- "$cur" ) ) + else COMPREPLY=( $( compgen -W "${_ponysay_balloons[*]}" -- "$cur" ) ) + fi + return 0 fi } -complete -F _ponysay.py -o default ponysay.py +complete -F _ponysay -o default ponysay +complete -F _ponysay -o default ponythink |