#!/usr/bin/env bash function stopvpn() { mapfile -t vpn_pid <<< "$(pgrep openfortivpn)$(pgrep openvpn)" for pid in ${vpn_pid[@]}; do if [[ -n "$pid" ]]; then echo "Kill process $pid." sudo kill "$pid" fi done if [[ -e /etc/systemd/resolved.conf.d/openvpn.conf ]]; then sudo rm /etc/systemd/resolved.conf.d/openvpn.conf sudo systemctl reload systemd-resolved fi } function fortivpn() { read -e -p 'Password: ' -s pass echo "Start openfortivpn with realm $1." sudo sh </dev/null /dev/null & disown EOF } function ovpn() { echo "Start openvpn." # Workaround, since openvpn didn't accept dns option for no reason sudo mkdir -p /etc/systemd/resolved.conf.d/ cat > /tmp/vpn-resolved << 'EOF' [Resolve] DNS=192.168.10.254 Domains=konchin.com EOF sudo mv /tmp/vpn-resolved /etc/systemd/resolved.conf.d/openvpn.conf sudo systemctl reload systemd-resolved sudo sh </dev/null /dev/null & disown EOF } function main() { case "$1" in s|stop) stopvpn ;; p|prod) stopvpn fortivpn prod ;; t|test) stopvpn fortivpn test ;; h|home) stopvpn ovpn "$HOME/.secret/openvpn/desktop.ovpn" ;; esac } main $@