configs/arch-config/scripts/polybar/vpn-wireguard-show.sh

47 lines
1005 B
Bash

#!/usr/bin/env bash
set -euo pipefail
# NOTE commands allowed
#wg show interfaces
# all active connections will be shown
# parse that
# loop over those and display all active connections
# script copied from polybar-scripts
connection_status() {
if [ -f "$config" ]; then
connection=$(sudo wg show "$config_name" 2>/dev/null | head -n 1 | awk '{print $NF }')
if [ "$connection" = "$config_name" ]; then
echo "1"
else
echo "2"
fi
else
echo "3"
fi
}
config="$HOME/wg/wireguard.conf"
config_name=$(basename "${config%.*}")
case "$1" in
--toggle)
if [ "$(connection_status)" = "1" ]; then
sudo wg-quick down "$config" 2>/dev/null
else
sudo wg-quick up "$config" 2>/dev/null
fi
;;
*)
if [ "$(connection_status)" = "1" ]; then
echo "#1 $config_name"
elif [ "$(connection_status)" = "3" ]; then
echo "#3 Config not found!"
else
echo "#2 down"
fi
;;
esac