diff --git a/completion/bash/ssh-proxy b/completion/bash/ssh-proxy new file mode 100644 index 0000000..b107b6d --- /dev/null +++ b/completion/bash/ssh-proxy @@ -0,0 +1,45 @@ +#!/bin/bash + +_ssh-proxy() { + # shellcheck disable=SC2034 + local cur prev words cword args + _init_completion || return + + local -r cmdargs="start stop" + local -r cnfargs="--help" + local profiledir=~/.config/ssh-proxy + #local tempdir="/tmp/ssh-proxy-${USER}" + + if [[ ${COMP_WORDS[*]} == *"--help"* ]]; then + return + fi + + args=${cmdargs} + for arg in ${cnfargs}; do + if [[ ${COMP_WORDS[*]} != *"${arg}"* ]]; then + args+=" ${arg}" + fi + done + for arg in ${cmdargs}; do + if [[ ${COMP_WORDS[*]} == *" ${arg} "* ]]; then + args="" + fi + done + + case $prev in + --help) + return + ;; + start | stop) + local -r PROFILELIST=$(\ls ${profiledir}) + # shellcheck disable=SC2207 + COMPREPLY=($(compgen -W "${PROFILELIST}" -- "${COMP_WORDS[COMP_CWORD]}")) + return + ;; + *) + # shellcheck disable=SC2207 + COMPREPLY=($(compgen -W "${args}" -- "${COMP_WORDS[COMP_CWORD]}")) + return + ;; + esac +} && complete -F _ssh-proxy ssh-proxy \ No newline at end of file