# protoc completion -*- shell-script -*- _protoc() { local cur prev words cword split _init_completion -s || return case $prev in --proto_path|--cpp_out|--java_out|--python_out) _filedir -d return ;; --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 ;; 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: ts=4 sw=4 et filetype=sh