diff options
Diffstat (limited to 'completions/wtf')
-rw-r--r-- | completions/wtf | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/completions/wtf b/completions/wtf new file mode 100644 index 0000000..27fc10a --- /dev/null +++ b/completions/wtf @@ -0,0 +1,42 @@ +# wtf completion -*- shell-script -*- +# Raphael Droz, 25/09/2009 + +_wtf() +{ + local cur prev words cword addf + _init_completion || return + + [[ $prev == -f ]] && _filedir && return + [[ ${words[*]} == *\ -f* ]] && addf= || addf=-f + if [[ $cur == -* ]]; then + COMPREPLY=($addf) + return + fi + + local db + + set -- "${words[@]}" + while (($# > 0)); do + if [[ $1 == -f ]]; then + shift + db=$1 + break + fi + shift + done + + if [[ ! -v db ]]; then + local f + for f in "${ACRONYMDB-}" /usr/share/misc/acronyms \ + /usr/share/games/bsdgames/acronyms; do + [[ -f $f ]] && db="$f" && break + done + [[ -v db ]] || return + fi + + COMPREPLY=($(compgen -W "$(cut -f 1 -s $db* 2>/dev/null) $addf" \ + -- "${cur^^}")) +} && + complete -F _wtf wtf + +# ex: filetype=sh |