aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/completion/wg-quick.bash-completion
diff options
context:
space:
mode:
Diffstat (limited to 'src/completion/wg-quick.bash-completion')
-rw-r--r--src/completion/wg-quick.bash-completion20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/completion/wg-quick.bash-completion b/src/completion/wg-quick.bash-completion
new file mode 100644
index 0000000..cf3e9a0
--- /dev/null
+++ b/src/completion/wg-quick.bash-completion
@@ -0,0 +1,20 @@
+# Copyright (C) 2017 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
+
+_wg_quick_completion() {
+ local i
+ 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}"
+ COMPREPLY+=( $(compgen -W "$i" -- "${COMP_WORDS[2]}") )
+ done
+ eval "$old_glob"
+ COMPREPLY+=( $(compgen -f -X '!*.conf' -- "${COMP_WORDS[2]}") $(compgen -d -- "${COMP_WORDS[2]}") )
+ fi
+}
+
+complete -o filenames -o nosort -F _wg_quick_completion wg-quick