1
0
Files
ag-index/nuxt-web/scripts/verify-generated-site.sh
2026-04-20 09:45:20 +08:00

53 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
OUTPUT_DIR="${OUTPUT_DIR:-.output/public}"
if [[ ! -d "$OUTPUT_DIR" ]]; then
echo "Missing generated output directory: $OUTPUT_DIR" >&2
echo "Run 'npm run generate' inside nuxt-web first." >&2
exit 1
fi
check_file_contains() {
local file="$1"
local label="$2"
local pattern="$3"
if [[ ! -f "$file" ]]; then
echo "Missing $label file: $file" >&2
exit 1
fi
if ! rg -q "$pattern" "$file"; then
echo "Missing expected content in $label file: $file" >&2
echo "Pattern: $pattern" >&2
exit 1
fi
}
index_file="$OUTPUT_DIR/index.html"
news_index_file="$OUTPUT_DIR/news/index.html"
cases_index_file="$OUTPUT_DIR/cases/index.html"
check_file_contains "$index_file" "homepage" "<(main|section|h1|h2)"
check_file_contains "$news_index_file" "news index" "<(article|main|h1|h2|h3)"
check_file_contains "$cases_index_file" "cases index" "<(article|main|h1|h2|h3)"
news_detail_file="$(find "$OUTPUT_DIR/news" -mindepth 2 -maxdepth 2 -type f -name 'index.html' | head -n 1)"
if [[ -z "${news_detail_file:-}" ]]; then
echo "Missing generated news detail pages under $OUTPUT_DIR/news" >&2
exit 1
fi
case_detail_file="$(find "$OUTPUT_DIR/cases" -mindepth 2 -maxdepth 2 -type f -name 'index.html' | head -n 1)"
if [[ -z "${case_detail_file:-}" ]]; then
echo "Missing generated case detail pages under $OUTPUT_DIR/cases" >&2
exit 1
fi
check_file_contains "$news_detail_file" "news detail" "<(article|main|p|h1|h2)"
check_file_contains "$case_detail_file" "case detail" "<(article|main|p|h1|h2)"
echo "verify-generated-site.sh: PASS"