#!/bin/sh
# q20-kit DDNS: keep a dynv6 AAAA record pointed at this box's current global IPv6.
# Config: /home/ragecks/.dynv6.env   ->  HOST=yourname.dynv6.net   TOKEN=xxxxxxxx
# Installed by the Q20 home-access work (2026-10-01).
ENVF=/home/ragecks/.dynv6.env
LOG=/home/ragecks/q20-ddns.log
IFACE=${IFACE:-enp4s0}

[ -f "$ENVF" ] && . "$ENVF"
if [ -z "$HOST" ] || [ -z "$TOKEN" ]; then
  echo "$(date '+%F %T') missing HOST/TOKEN in $ENVF" >> "$LOG"
  exit 1
fi

ADDR=$(ip -6 addr show dev "$IFACE" scope global 2>/dev/null | awk '/inet6 240e/{print $2}' | cut -d/ -f1 | head -1)
if [ -z "$ADDR" ]; then
  echo "$(date '+%F %T') no global 240e IPv6 on $IFACE" >> "$LOG"
  exit 1
fi

RES=$(curl -s -m 20 "https://dynv6.com/api/update?hostname=$HOST&token=$TOKEN&ipv6=$ADDR" 2>&1)
echo "$(date '+%F %T') $HOST -> $ADDR : $RES" >> "$LOG"
tail -n 200 "$LOG" > "$LOG.tmp" 2>/dev/null && mv "$LOG.tmp" "$LOG"
