dotfiles/.bin/dexec_vpn

42 lines
963 B
Bash
Executable File

#!/bin/sh
. ~/.bin/_config
LIST="$(cat /etc/wireguard/vpnlist.txt)"
SEL="$(print "$LIST\ndeactivate\nhome" | cut -d' ' -f1 | $DMENU_CMD -l 20 -p "VPN")"
[ -z "$SEL" ] && exit 0
needs wireguard-tools--
if [ "$SEL" == "deactivate" ]
then
ACTIVE=$(ifconfig | grep wg-quick | cut -d: -f3 | tr -d " ")
if [ ! -z "$ACTIVE" ]
then
doas wg-quick down $ACTIVE && NOTIFY_CMD "VPN: disconnected"
sleep 1
doas ifconfig trunk0 inet6 autoconf
fi
exit 0
fi
HOST="$(echo "$LIST" | fgrep "$SEL" | cut -d' ' -f2)"
cat /etc/wireguard/template.conf | sed "s/XXXXXX/$HOST/g" > /tmp/vpn.conf
doas mv /tmp/vpn.conf /etc/wireguard/vpn.conf
ACTIVE=$(ifconfig | grep wg-quick | cut -d: -f3 | tr -d " ")
if [ ! -z "$ACTIVE" ]
then
doas wg-quick down $ACTIVE && NOTIFY_CMD "VPN: disconnected"
sleep 1
doas ifconfig trunk0 inet6 autoconf
fi
doas ifconfig trunk0 -inet6
sleep 1
doas wg-quick up vpn && NOTIFY_CMD "VPN: $HOST"