#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SKILL_ROOT="$(dirname "$SCRIPT_DIR")" source "$SCRIPT_DIR/_common.sh" : "${PDNS_API_KEY:=}" : "${PDNS_WEB_PORT:=8081}" : "${ZONE_NAME:=}" : "${NS1_NAME:=}" : "${NS2_NAME:=}" api() { local method="$1"; shift local url="$1"; shift curl -sS -X "$method" "$url" -H "X-API-Key: $PDNS_API_KEY" -H "Content-Type: application/json" "$@" } main() { confirm_gate [[ -n "$PDNS_API_KEY" ]] || die "PDNS_API_KEY is required." [[ -n "$ZONE_NAME" ]] || die "ZONE_NAME is required." local zone="${ZONE_NAME%\.}." local ns1="${NS1_NAME:-ns1.${ZONE_NAME}}" local ns2="${NS2_NAME:-ns2.${ZONE_NAME}}" local base="http://127.0.0.1:${PDNS_WEB_PORT}/api/v1/servers/localhost" # Check if zone exists if api GET "$base/zones/$zone" | jq -e '.name' >/dev/null 2>&1; then log_warn "Zone already exists: $zone" exit 0 fi log_info "Creating zone: $zone" api POST "$base/zones" --data "{ \"name\": \"$zone\", \"kind\": \"Native\", \"masters\": [], \"nameservers\": [\"$ns1.\", \"$ns2.\"] }" | jq '.' > "$SKILL_ROOT/outputs/zone_create_result.json" log_info "Zone created; output saved: outputs/zone_create_result.json" } main "$@"