#!/bin/sh

PING_IP="8.8.8.8"
FAIL_LIMIT=3
fail_count=0
network_status="unknown"

while true; do
  if ping -c 1 -W 2 "$PING_IP" >/dev/null 2>&1; then
    fail_count=0

    if [ "$network_status" != "up" ]; then
      network_status="up"
      echo "network up"
      echo 1 >/sys/class/leds/errled/brightness
    fi
  else
    fail_count=$((fail_count + 1))
    echo "ping failed: $fail_count/$FAIL_LIMIT"

    if [ "$fail_count" -ge "$FAIL_LIMIT" ]; then
      if [ "$network_status" != "down" ]; then
        network_status="down"
        echo "network down"
        echo 0 >/sys/class/leds/errled/brightness
      fi

      # 防止计数一直无限增加
      fail_count=$FAIL_LIMIT
    fi
  fi

  sleep 10
done
