bin/vpn: advanced handling

This commit is contained in:
xeruf 2025-05-05 20:56:59 +02:00
parent 6533464fd2
commit d8a667f9be

View file

@ -4,8 +4,11 @@ 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" '
then printf "Device ppp0 already in use - press Enter to kill"
read -r _
sudo killall openfortivpn
fi
sudo tmux new-session -s "$1" '
set -x
route="$(ip route | grep default | sort | head -1)"
# Start openfortivpn in the background
@ -13,7 +16,7 @@ case "$1" in
VPN_PID=$!
# Wait a little for the VPN to establish the connection
sleep 5
# TODO Loop
# TODO Loop
# Delete the default route set by openfortivpn (ppp0)
ip route del default dev ppp0
# Add the default route via the local network
@ -22,8 +25,10 @@ case "$1" in
ip route
wait $VPN_PID
echo "VPN has disconnected."
ip dev del ppp0;
'
fi
;;
(*) tmux new-session -s "$@" "sudo openvpn $@ || read";;
(*) test -f "$1" || file=$(find $1* -name '*.ovpn')
cd "$(dirname "$file")" && file="$(basename "$file")"
tmux new-session -s "$@" "sudo openvpn ${file:-$@} || read"
esac