#!/usr/bin/env bash set -euo pipefail root_dir=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) source "$root_dir/scripts/fossil-env.sh" test_dir=$(mktemp -d -t copland-smoke.XXXXXX) port=${COPLAND_TEST_PORT:-18081} server_pid="" finish() { if [[ -n "$server_pid" ]]; then kill "$server_pid" 2>/dev/null || true wait "$server_pid" 2>/dev/null || true fi } trap finish EXIT INT TERM require_org_fossil "$root_dir/scripts/create-demo.sh" "$test_dir" verify_org_mime "$test_dir/repositories/alpha.fossil" "$FOSSIL" sql -R "$test_dir/repositories/alpha.fossil" \ "REPLACE INTO config(name,value,mtime) VALUES('doc-glob','*.org',unixepoch());" "$FOSSIL" fts-config enable document -R "$test_dir/repositories/alpha.fossil" >/dev/null "$FOSSIL" fts-config enable wiki -R "$test_dir/repositories/alpha.fossil" >/dev/null "$FOSSIL" fts-config index on -R "$test_dir/repositories/alpha.fossil" >/dev/null "$FOSSIL" fts-config reindex -R "$test_dir/repositories/alpha.fossil" >/dev/null FOSSIL_REPOLIST_TITLE=Copland "$FOSSIL" server \ --localhost \ --localauth \ --port "$port" \ --repolist \ "$test_dir/repositories" >"$test_dir/server.log" 2>&1 & server_pid=$! base_url="http://127.0.0.1:$port" for attempt in $(seq 1 50); do if curl --fail --location --silent "$base_url/" >/dev/null; then break fi if [[ "$attempt" -eq 50 ]]; then printf 'Fossil server did not start.\n' >&2 sed -n '1,120p' "$test_dir/server.log" >&2 exit 1 fi sleep 0.1 done paths=( "/" "/alpha/home" "/alpha/timeline" "/alpha/tree?ci=tip" "/alpha/dir?ci=tip" "/alpha/brlist" "/alpha/taglist" "/alpha/wiki" "/alpha/wiki?name=Org%20Wiki" "/alpha/wikiedit?name=New%20Org%20Page" "/alpha/whistory?name=Org%20Wiki" "/alpha/reportlist" "/alpha/forum" "/alpha/login" "/alpha/sitemap" "/alpha/doc/tip/docs/org-support.org" "/alpha/file?name=docs/org-support.org&ci=tip" "/alpha/file?name=docs/org-support.org&ci=tip&txt=1" "/alpha/search?s=Native%20Org%20preview&y=d" "/alpha/search?s=deployment%20guide&y=w" ) for path in "${paths[@]}"; do body=$(curl --fail --location --silent --show-error "$base_url$path") if [[ "$body" != *"Copland"* ]]; then printf 'Copland marker missing from %s\n' "$path" >&2 exit 1 fi if [[ "$body" == *"thmainError"* ]]; then printf 'TH1 template error on %s\n' "$path" >&2 exit 1 fi if [[ "$path" == "/" && ("$body" != *"Alpha"* || "$body" != *"Beta"*) ]]; then printf 'Demo repositories missing from repository list\n' >&2 exit 1 fi if [[ "$path" == "/alpha/home" ]]; then mainmenu=${body#*'