48 lines
991 B
Bash
Executable File
48 lines
991 B
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
ACTION="${1:-}"
|
|
case "$ACTION" in
|
|
probe|up|down|status|cleanup)
|
|
;;
|
|
*)
|
|
echo "Usage: nordvpn-wireguard-helper.sh [probe|up|down|status|cleanup]" >&2
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
WG_QUICK="/opt/homebrew/bin/wg-quick"
|
|
WG="/opt/homebrew/bin/wg"
|
|
WG_CONFIG="/Users/stefano/.nordvpn-client/wireguard/nordvpnctl.conf"
|
|
WG_INTERFACE="nordvpnctl"
|
|
PATH="/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"
|
|
export PATH
|
|
|
|
if [ "$ACTION" = "probe" ]; then
|
|
test -x "$WG_QUICK"
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$ACTION" = "status" ]; then
|
|
ACTIVE=0
|
|
if [ -x "$WG" ] && "$WG" show "$WG_INTERFACE" >/dev/null 2>&1; then
|
|
ACTIVE=1
|
|
elif /sbin/ifconfig "$WG_INTERFACE" >/dev/null 2>&1; then
|
|
ACTIVE=1
|
|
fi
|
|
|
|
echo "active=$ACTIVE"
|
|
echo "interfaceName=$WG_INTERFACE"
|
|
if [ -f "$WG_CONFIG" ]; then
|
|
echo "configPath=$WG_CONFIG"
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$ACTION" = "cleanup" ]; then
|
|
"$WG_QUICK" down "$WG_CONFIG" >/dev/null 2>&1 || true
|
|
exit 0
|
|
fi
|
|
|
|
exec "$WG_QUICK" "$ACTION" "$WG_CONFIG"
|