summaryrefslogtreecommitdiff
blob: be3762ceb7e02948c83138e20e60384484dd8234 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

# bash command-line completion for figlet
# author: Aaron Walker <ka0ttic@gentoo.org>

_figlet() {
    local cur prev opts x
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    opts="-f -d -c -l -r -x -t -w -p -n -D -E -C -N -s -S -k -W -o \
	        -m -v -I -L -R -X"

    if [[ "${cur}" == -* || ${COMP_CWORD} -eq 1 ]] ; then
	    COMPREPLY=( $(compgen -W "${opts}" -- $cur) )
    	return 0
    fi

    case "${prev}" in
	-f)
	    COMPREPLY=( $(compgen -f -- $cur) \
		    $(compgen -W "$(\
		    for x in /usr/share/figlet/*.flf ; do \
		        [[ -f ${x} ]] && { local y=${x##*/} ; echo ${y%.*} ; } \
		    done)" -- $cur) )
	    ;;
	-d)
	    COMPREPLY=( $(compgen -d -S '/' -- $cur) )
	    ;;
	-C)
	    COMPREPLY=( $(compgen -f -- $cur) \
            $(compgen -W "$(\
            for x in /usr/share/figlet/*.flc ; do \
                [[ -f ${x} ]] && { local y=${x##*/} ; echo ${y%.*} ; } \
            done)" -- $cur) )
	    ;;
	-m)
	    COMPREPLY=( $(compgen -W "$(\
		    for ((x = 1 ; x < 64 ; x++)) ; do \
		        echo ${x} ; \
		    done)" ) )
	    ;;
	-I)
	    COMPREPLY=( $(compgen -W "-1 0 1 2 3 4" -- $cur) )
	    ;;
    esac
}
complete -o filenames -F _figlet figlet

# vim: set ft=sh tw=80 sw=4 et :