# dmypy completion -*- shell-script -*- _dmypy() { local cur prev words cword _init_completion || return case $prev in --help | --version | -[hV]) return ;; --status-file) _filedir return ;; esac local cmd i for ((i = 1; i < cword; i++)); do if [[ ${words[i]} != -* && ${words[i - 1]} != --status-file ]]; then cmd=${words[i]} break fi done case ${cmd-} in check | run) _filedir '@(py|pyi)' return ;; esac if [[ $cur == -* ]]; then COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) return fi if [[ ! -v cmd ]]; then local cmds=$($1 --help 2>&1 | command sed -ne '/positional arguments/{p;n;p;q}' | command sed -ne 's/{\(.*\)}/\1/p') COMPREPLY=($(IFS="," compgen -W '$cmds' -- "$cur")) return fi } && complete -F _dmypy dmypy # ex: filetype=sh