#!/bin/bash

fail() {
  printf '%s\n' "$1" > "${TRIM_TEMP_LOGFILE:-/tmp/cmsingbox-install.log}"
  exit 1
}

valid_ipv4() {
  printf '%s\n' "$1" | awk -F. '
    NF != 4 { exit 1 }
    { for (i=1; i<=4; i++) if ($i !~ /^[0-9]+$/ || $i < 0 || $i > 255) exit 1 }
  '
}

command -v docker >/dev/null 2>&1 || fail "飞牛 Docker 服务不可用，请先在飞牛中启用 Docker。"
valid_ipv4 "${wizard_cmsingbox_ip:-}" || fail "CMSingBox 独立 IP 格式无效。"
valid_ipv4 "${wizard_gateway:-}" || fail "网关 IP 格式无效。"
printf '%s' "${wizard_subnet:-}" | grep -Eq '^([0-9]{1,3}\.){3}[0-9]{1,3}/([0-9]|[12][0-9]|3[0-2])$' || fail "局域网网段格式无效，例如 192.168.1.0/24。"
printf '%s' "${wizard_parent_interface:-}" | grep -Eq '^[A-Za-z0-9_.:-]{1,15}$' || fail "网卡名称格式无效。"
ip link show dev "${wizard_parent_interface}" >/dev/null 2>&1 || fail "找不到指定的局域网网卡。"
[ "${wizard_cmsingbox_ip}" != "${wizard_gateway}" ] || fail "CMSingBox 独立 IP 不能与网关相同。"

exit 0
