diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2017-09-06 20:51:41 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2017-09-06 20:51:41 +0200 |
commit | 92feabdd176f1089baff811a9c0d148259022501 (patch) | |
tree | 49189bb20693da8e5237ceb2969b24c7fecf8bd9 /src/completion/wg-quick.bash-completion | |
parent | wg: fix removal of psk (diff) | |
download | wireguard-tools-92feabdd176f1089baff811a9c0d148259022501.tar.xz wireguard-tools-92feabdd176f1089baff811a9c0d148259022501.zip |
wg-quick: only bash complete existing interfaces for down
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/completion/wg-quick.bash-completion')
-rw-r--r-- | src/completion/wg-quick.bash-completion | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/completion/wg-quick.bash-completion b/src/completion/wg-quick.bash-completion index e0bdf9f..b931323 100644 --- a/src/completion/wg-quick.bash-completion +++ b/src/completion/wg-quick.bash-completion @@ -4,20 +4,23 @@ _wg_quick_completion() { local i a if [[ $COMP_CWORD -eq 1 ]]; then COMPREPLY+=( $(compgen -W "up down" -- "${COMP_WORDS[1]}") ) - return elif [[ $COMP_CWORD -eq 2 ]]; then - local old_glob="$(shopt -p nullglob)" - shopt -s nullglob - for i in /etc/wireguard/*.conf; do - i="${i##*/}"; i="${i%.conf}" - mapfile -t a < <(compgen -W "$i" -- "${COMP_WORDS[2]}") + if [[ ${COMP_WORDS[1]} == up ]]; then + local old_glob="$(shopt -p nullglob)" + shopt -s nullglob + for i in /etc/wireguard/*.conf; do + i="${i##*/}"; i="${i%.conf}" + mapfile -t a < <(compgen -W "$i" -- "${COMP_WORDS[2]}") + COMPREPLY+=( "${a[@]}" ) + done + eval "$old_glob" + mapfile -t a < <(compgen -f -X '!*.conf' -- "${COMP_WORDS[2]}") COMPREPLY+=( "${a[@]}" ) - done - eval "$old_glob" - mapfile -t a < <(compgen -f -X '!*.conf' -- "${COMP_WORDS[2]}") - COMPREPLY+=( "${a[@]}" ) - mapfile -t a < <(compgen -d -- "${COMP_WORDS[2]}") - COMPREPLY+=( "${a[@]}" ) + mapfile -t a < <(compgen -d -- "${COMP_WORDS[2]}") + COMPREPLY+=( "${a[@]}" ) + elif [[ ${COMP_WORDS[1]} == down ]]; then + COMPREPLY+=( $(compgen -W "$(wg show interfaces)" -- "${COMP_WORDS[2]}") ) + fi fi } |