#!/bin/sh
#
# This script monitors GLASER_PATH folder and decides GLASER status

GLASER_PATH="/tmp/glaser"
LED_PATH="/tmp/ledmonitor"
GLASER_CHANNEL_FILE="$GLASER_PATH/channel"
LED_GLASER_STATUS_FILE="$LED_PATH/glaserstatus"
GLASER_STATUS_FILE="$GLASER_PATH/status"

mkdir -p $GLASER_PATH
mkdir -p $LED_PATH

set_glaser_port_status() {
  local status="$1"

  if [ "$status" = "CONNECTING" ]; then
    echo "Bring down man port"
    ifdown man
  elif [ "$status" = "CONNECTED" ]; then
    echo "Bring up man port"
    ifup man
    sysvar_cmd -s LASER_CHANNEL $(cat $GLASER_CHANNEL_FILE)
  else
    echo "False status"
  fi
}

while [ 1 ]; do
  if [ -e "$GLASER_STATUS_FILE" ]; then
    glaser_status="$(cat $GLASER_STATUS_FILE)"
    led_glaser_status=""

    if [ -e "$LED_GLASER_STATUS_FILE" ]; then
      led_glaser_status="$(cat $LED_GLASER_STATUS_FILE)"
    fi

    if [ "$led_glaser_status" != "$glaser_status" ]; then
      echo "$glaser_status" > "$LED_GLASER_STATUS_FILE.tmp"
      mv "$LED_GLASER_STATUS_FILE.tmp" "$LED_GLASER_STATUS_FILE"
      set_glaser_port_status "$glaser_status"
    fi
  fi
  sleep $1
done
