# protoc completion -*- shell-script -*- _protoc() { local cur prev words cword split _init_completion -s || return case $prev in --version | -h | --help | --encode | --decode) return ;; --descriptor_set_out) _filedir return ;; --error_format) COMPREPLY=($(compgen -W 'gcc msvs' -- "$cur")) return ;; --plugin) if [[ $cur != *=* ]]; then compopt -o filenames COMPREPLY=($(compgen -c -- "$cur")) fi return ;; --proto_path | --*_out) _filedir -d return ;; esac $split && return case $cur in -o*) cur=${cur:2} _filedir COMPREPLY=("${COMPREPLY[@]/#/-o}") return ;; -I*) cur=${cur:2} _filedir -d COMPREPLY=("${COMPREPLY[@]/#/-I}") return ;; -*) COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) local i for i in "${!COMPREPLY[@]}"; do [[ ${COMPREPLY[i]} == -oFILE ]] && unset 'COMPREPLY[i]' done [[ ${COMPREPLY-} == *= ]] && compopt -o nospace return ;; esac _filedir proto } && complete -F _protoc protoc # ex: filetype=sh