#!/usr/bin/sh

IFACE="$1"
STATUS="$2"

ALLOWED_APS="SSN
SNUC
SSN-LG_2.4
OnePlus Nord 5 5G"

SHADOWSOCKS_CONFIG_PATH="/etc/shadowsocks-rust/devserver.json"

jq -r '.outbound_bind_interface' <"$SHADOWSOCKS_CONFIG_PATH"

if systemctl is-active shadowsocks-rust@"$(basename "$SHADOWSOCKS_CONFIG_PATH" .json)"; then
  if [ "$IFACE" = "$(jq -r '.outbound_bind_interface' <"$SHADOWSOCKS_CONFIG_PATH")" ]; then

    if [ "$STATUS" = "up" ]; then

      ssid=$(iw dev "$IFACE" link | sed -n 's/^\tSSID: //p')
      if printf '%s\n' "$ALLOWED_APS" | grep -Fxq "$ssid"; then
        if [ -f "/opt/autotun/$(jq -r '.locals[] | select(.protocol=="tun") | .tun_interface_name' <"$SHADOWSOCKS_CONFIG_PATH")" ]; then
          systemctl start autotun@"$(jq -r '.locals[] | select(.protocol=="tun") | .tun_interface_name' <"$SHADOWSOCKS_CONFIG_PATH")"
        fi
      fi

    elif [ "$STATUS" = "down" ]; then
      systemctl stop autotun@"$(jq -r '.locals[] | select(.protocol=="tun") | .tun_interface_name' <"$SHADOWSOCKS_CONFIG_PATH")"
    fi
  fi
fi
