#!/bin/sh

if [ "$1" = "once" ]; then
  iwconfig wlan0 power off
  sleep 6
  iwconfig wlan0 power off
  sleep 6
  iwconfig wlan0 power off
  sleep 6
  iwconfig wlan0 power off
  sleep 6
  iwconfig wlan0 power off
  sleep 6
  if [ -f /home/user/.openssh-status-widget ]; then
    if [ $(grep -c 'keepWifiPMOff = True' /home/user/.openssh-status-widget) -eq 0 ]; then
      iwconfig wlan0 power on
    else
      /usr/sbin/osw-power-management &
    fi
  else
    iwconfig wlan0 power on
  fi
  exit
fi

WLAN_IP=$(/sbin/ifconfig wlan0 | sed -n 's/.*inet addr:\([0-9.]\+\).*/\1/p')
if [ ! $WLAN_IP ]; then
  WLAN_IP="None"
fi

if [ -f /home/user/.openssh-status-widget ]; then
  TOGGLE=$(grep -c 'toggleWifiPM = True' /home/user/.openssh-status-widget)
else
  TOGGLE=0
fi

if [ $TOGGLE -eq 0 ]; then
  while [ $(netstat -t | grep :ssh.*ESTABLISHED | grep -c $WLAN_IP) -gt 0 ]; do
    iwconfig wlan0 power off
    sleep 6
    iwconfig wlan0 power off
    sleep 6
    iwconfig wlan0 power off
    sleep 6
    iwconfig wlan0 power off
    sleep 6
    iwconfig wlan0 power off
    sleep 6
  done
else
  if [ -f /home/user/.openssh-status-widget ]; then
    OFF_SEC=$(grep 'wifiPMOffSec' /home/user/.openssh-status-widget | cut -d ' ' -f 3)
    ON_SEC=$(grep 'wifiPMOnSec' /home/user/.openssh-status-widget | cut -d ' ' -f 3)
  else
    OFF_SEC=2
    ON_SEC=4
  fi
  while [ $(netstat -t | grep :ssh.*ESTABLISHED | grep -c $WLAN_IP) -gt 0 ]; do
    iwconfig wlan0 power off
    sleep $OFF_SEC
    iwconfig wlan0 power on
    sleep $ON_SEC
    iwconfig wlan0 power off
    sleep $OFF_SEC
    iwconfig wlan0 power on
    sleep $ON_SEC
    iwconfig wlan0 power off
    sleep $OFF_SEC
    iwconfig wlan0 power on
    sleep $ON_SEC
    iwconfig wlan0 power off
    sleep $OFF_SEC
    iwconfig wlan0 power on
    sleep $ON_SEC
    iwconfig wlan0 power off
    sleep $OFF_SEC
    iwconfig wlan0 power on
    sleep $ON_SEC
  done
fi

iwconfig wlan0 power on
