Script idea to show wireguard connections
This commit is contained in:
parent
e4b48683f8
commit
a681ccc270
46
arch-config/scripts/polybar/vpn-wireguard-show.sh
Normal file
46
arch-config/scripts/polybar/vpn-wireguard-show.sh
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user