1
0
Fork 0
dotfiles/.local/bin/scripts/vpn
2026-01-06 07:36:53 +03:00

48 lines
984 B
Bash
Executable file

#!/bin/bash -x
send_router_cmd() {
touch "${HOME}/.local/state/.vpn_loading"
pkill -36 dwmblocks
ssh router vpn "$1" laptop 2>/dev/null
rm "${HOME}/.local/state/.vpn_loading"
}
awg-quick() {
PIPE="/var/run/vpnd.sock"
[ -p $PIPE ] &&
echo "$@" > $PIPE &&
cat < $PIPE
}
DEFAULT_LINK="$(resolvectl status | grep 'Default Route: yes' -B10 | grep 'Link' | tail -1 | grep -Eo '\(.*\)' | tr -d '()')"
IS_LOCAL=0
if resolvectl domain "$DEFAULT_LINK" | grep -q 'wzray.com'; then
IS_LOCAL=1
fi
IFNAME="awg_ext"
while [ "$#" -gt 0 ]; do
case "$1" in
i|int|internal) IFNAME='awg_int';;
-f) IS_LOCAL=0;;
*) echo "Wrong argument!" >&2; exit 1;;
esac
shift
done
UP_NAME="$(ip link | grep 'awg_' | cut -d ' ' -f 2 | sed 's,:,,')"
if [ -n "$UP_NAME" ]; then
awg-quick down "$UP_NAME"
elif [ "$IS_LOCAL" = 1 ]; then
send_router_cmd toggle
else
awg-quick up "${IFNAME}"
fi
pkill -36 dwmblocks
# vim: ft=bash