#!/bin/sh
set -eu

mask_to_prefix() {
  python3 - "$1" <<'PY'
import ipaddress
import sys
print(ipaddress.IPv4Network(f"0.0.0.0/{sys.argv[1]}").prefixlen)
PY
}

case "${1:-}" in
  deconfig)
    ip addr flush dev "${interface}"
    ;;

  bound|renew)
    prefix="$(mask_to_prefix "${subnet}")"
    ip addr flush dev "${interface}"
    ip addr add "${ip}/${prefix}" dev "${interface}"

    ip route del default 2>/dev/null || true
    if [ -n "${router:-}" ]; then
      first_router="${router%% *}"
      ip route add default via "${first_router}" dev "${interface}"
    fi

    printf '%s\n' "${dns:-}" > /tmp/soria-dhcp-dns
    ;;

  *)
    ;;
esac
