dotfiles/.local/bin/scripts/vpn

30 lines
990 B
Text
Raw Normal View History

2023-04-12 08:35:48 +02:00
#!/bin/sh -e
2023-04-27 14:28:04 +02:00
test -f "$1" || cd "$XDG_DATA_HOME/openvpn"
2025-02-04 11:51:09 +01:00
case "$1" in
("") tmux new-session -s "vpn" "tmux ls; $SHELL";;
(forti)
if ip route | grep -q ppp0
then echo "Device ppp0 already in use!"
else sudo tmux new-session -s "$1" '
set -x
route="$(ip route | grep default | sort | head -1)"
# Start openfortivpn in the background
openfortivpn &
VPN_PID=$!
# Wait a little for the VPN to establish the connection
sleep 5
# TODO Loop
# Delete the default route set by openfortivpn (ppp0)
ip route del default dev ppp0
# Add the default route via the local network
eval "ip route add $route"
ip route add 134.245.0.0/16 dev ppp0;
ip route
wait $VPN_PID
echo "VPN has disconnected."
'
fi
;;
(*) tmux new-session -s "$@" "sudo openvpn $@ || read";;
esac