summaryrefslogtreecommitdiffstats
path: root/completions/vpnc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--completions/vpnc82
1 files changed, 82 insertions, 0 deletions
diff --git a/completions/vpnc b/completions/vpnc
new file mode 100644
index 0000000..bbdb8ee
--- /dev/null
+++ b/completions/vpnc
@@ -0,0 +1,82 @@
+# bash completion for vpnc -*- shell-script -*-
+
+_vpnc()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ case $prev in
+ --help | --long-help | --version | --id | --username | --domain | --ifname | \
+ --application-version | --local-addr | --local-port | --udp-port | --dpd-idle | \
+ --target-network | --ifmtu)
+ return
+ ;;
+ --gateway)
+ _known_hosts_real -- "$cur"
+ return
+ ;;
+ --vendor)
+ COMPREPLY=($(compgen -W 'cisco netscreen' -- "$cur"))
+ return
+ ;;
+ --natt-mode)
+ COMPREPLY=($(compgen -W 'natt none force-natt cisco-udp' \
+ -- "$cur"))
+ return
+ ;;
+ --script | --pid-file | --ca-file)
+ _filedir
+ return
+ ;;
+ --dh)
+ COMPREPLY=($(compgen -W 'dh1 dh2 dh5' -- "$cur"))
+ return
+ ;;
+ --pfs)
+ COMPREPLY=($(compgen -W 'nopfs dh1 dh2 dh5 server' -- "$cur"))
+ return
+ ;;
+ --ifmode)
+ COMPREPLY=($(compgen -W 'tun tap' -- "$cur"))
+ return
+ ;;
+ --debug)
+ COMPREPLY=($(compgen -W '0 1 2 3 99' -- "$cur"))
+ return
+ ;;
+ --auth-mode)
+ COMPREPLY=($(compgen -W 'psk cert hybrid' -- "$cur"))
+ return
+ ;;
+ --ca-dir)
+ _filedir -d
+ return
+ ;;
+ --password-helper)
+ compopt -o filenames
+ COMPREPLY=($(compgen -c -- "$cur"))
+ return
+ ;;
+ esac
+
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1" --long-help)' -- "$cur"))
+ elif [[ $cur == */* ]]; then
+ # explicit filename
+ _filedir conf
+ else
+ # config name, /etc/vpnc/<name>.conf
+ local IFS=$' \t\n' reset=$(shopt -p nullglob)
+ shopt -s nullglob
+ local -a configs=(/etc/vpnc/*.conf)
+ configs=("${configs[@]##*/}")
+ configs=("${configs[@]%.conf}")
+ $reset
+ IFS=$'\n'
+ compopt -o filenames
+ COMPREPLY=($(compgen -W '${configs[@]}' -- "$cur"))
+ fi
+} &&
+ complete -F _vpnc vpnc
+
+# ex: filetype=sh