diff options
Diffstat (limited to '')
-rw-r--r-- | completions/lz4 | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/completions/lz4 b/completions/lz4 new file mode 100644 index 0000000..f297b5d --- /dev/null +++ b/completions/lz4 @@ -0,0 +1,52 @@ +# lz4 completion -*- shell-script -*- + +_lz4() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -b) + _filedir + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -X '-*#*' -W \ + '$(_parse_help "$1" -h) -B{4..7} -i{1..9}' -- "$cur")) + return + fi + + local args word xspec="*.?(t)lz4" + _count_args + ((args > 2)) && return + + for word in "${words[@]}"; do + case $word in + -*[dt]*) + case $args in + 1) xspec="!"$xspec ;; + 2) [[ $word == *t* ]] && return ;; + esac + break + ;; + -z) + case $args in + 1) xspec= ;; + 2) xspec="!"$xspec ;; + esac + break + ;; + esac + done + + _tilde "$cur" || return + + local IFS=$'\n' + compopt -o filenames + COMPREPLY=($(compgen -f -X "$xspec" -- "$cur") $(compgen -d -- "$cur")) +} && + complete -F _lz4 lz4 lz4c + +# ex: filetype=sh |