#!/usr/bin/env bash # RON content validator — wrapper for the Rust validate_ron binary (#611). # # Usage: # tooling/validate-ron # # Examples: # tooling/validate-ron server/content/global/zone-types/rural_agricultural.ron zone_type # tooling/validate-ron server/content/global/culture-van-maanens-star.example.ron culture # tooling/validate-ron server/content/global/zone-identity-spec.example.ron zone set -euo pipefail if [ $# -lt 2 ]; then echo "Usage: tooling/validate-ron " echo "" echo "Validates a RON file against the Rust struct schema." echo "Schema types:" echo " zone_type — ZoneTypeTemplate (D-142 zone-type template)" echo " zone — ZoneSpec (legacy zone identity spec)" echo " culture — CultureProfile (culture profile)" exit 1 fi # Check file exists before resolving — realpath gives unhelpful errors otherwise if [ ! -f "$1" ]; then echo "Error: file not found: $1" exit 1 fi FILE="$(realpath "$1")" SCHEMA="$2" cd "$(dirname "$0")/../server" exec cargo run --quiet --bin validate_ron -- "$FILE" "$SCHEMA"