diff --git a/arch-config/scripts/polybar/vpn-wireguard-show.sh b/arch-config/scripts/polybar/vpn-wireguard-show.sh new file mode 100644 index 00000000..5187c838 --- /dev/null +++ b/arch-config/scripts/polybar/vpn-wireguard-show.sh @@ -0,0 +1,46 @@ +#!/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