#!/usr/bin/env bash
# Disable Energy-Efficient Ethernet (802.3az) on fixture member ports.
# Called from run_bridge_jun11_good.sh before bridge Python starts.
# Writes verify log to LOG_DIR/disable_eth_eee.log (synced with other logs).

set -euo pipefail

PORTS=(eth0 eth1)
if [[ -n "${ETH_PORTS:-}" ]]; then
  read -r -a PORTS <<< "${ETH_PORTS//,/ }"
fi

LOG_FILE="${EEE_LOG_FILE:-${LOG_DIR:-./logs}/disable_eth_eee.log}"
mkdir -p "$(dirname "${LOG_FILE}")"

log() {
  local line="[$(date -u +%Y-%m-%dT%H:%M:%SZ)] $*"
  echo "${line}"
  echo "${line}" >> "${LOG_FILE}"
}

if [[ "${EUID}" -ne 0 ]]; then
  echo "FATAL: run with sudo" >&2
  exit 1
fi

log "disable_eth_eee.sh start FIXTURE_POS=${FIXTURE_POS:-?} LOG_FILE=${LOG_FILE}"

if ! command -v ethtool >/dev/null 2>&1; then
  log "WARN ethtool not installed — EEE disable skipped"
  exit 0
fi

for port in "${PORTS[@]}"; do
  if [[ ! -d "/sys/class/net/${port}" ]]; then
    log "WARN ${port} not found — skip"
    continue
  fi
  log "--- ${port} before ---"
  ethtool --show-eee "${port}" 2>&1 | while read -r l; do log "  ${l}"; done || log "  (no EEE stats)"
  if ethtool --set-eee "${port}" eee off 2>/dev/null; then
    log "${port} set eee off: OK"
  else
    log "WARN ${port} set eee off: not supported or failed"
  fi
  log "--- ${port} after ---"
  ethtool --show-eee "${port}" 2>&1 | while read -r l; do log "  ${l}"; done || log "  (no EEE stats)"
done

log "disable_eth_eee.sh done"
exit 0
