diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-05-23 15:08:30 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-05-23 15:24:07 +0200 |
commit | d40231c7667d6c2684105f4e3f1b5d9ac004fb22 (patch) | |
tree | cc3512a915d9a9a963473abd3afe00b399f4565a /src/completion/wg-quick.bash-completion | |
parent | wg: always pass -v as first argument to install (diff) | |
download | wireguard-tools-d40231c7667d6c2684105f4e3f1b5d9ac004fb22.tar.xz wireguard-tools-d40231c7667d6c2684105f4e3f1b5d9ac004fb22.zip |
wg-quick: support FreeBSD/Darwin search path
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 | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/completion/wg-quick.bash-completion b/src/completion/wg-quick.bash-completion index e5e3983..3474120 100644 --- a/src/completion/wg-quick.bash-completion +++ b/src/completion/wg-quick.bash-completion @@ -2,17 +2,23 @@ # Copyright (C) 2015-2018 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. _wg_quick_completion() { - local i a + local p i a search_paths + search_paths=( /etc/wireguard ) + + [[ $OSTYPE == *freebsd* || $OSTYPE == *darwin* ]] && search_paths+=( /usr/local/etc/wireguard ) + if [[ $COMP_CWORD -eq 1 ]]; then COMPREPLY+=( $(compgen -W "up down" -- "${COMP_WORDS[1]}") ) elif [[ $COMP_CWORD -eq 2 ]]; then 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[@]}" ) + for p in "${search_paths[@]}"; do + for i in "$p"/*.conf; do + i="${i##*/}"; i="${i%.conf}" + mapfile -t a < <(compgen -W "$i" -- "${COMP_WORDS[2]}") + COMPREPLY+=( "${a[@]}" ) + done done eval "$old_glob" mapfile -t a < <(compgen -f -X '!*.conf' -- "${COMP_WORDS[2]}") |