refactor(demo-load): iterate docs/demo/trips/* instead of per-trip blocks

demo-load / demo-reset now loop over every fixture under docs/demo/trips/
rather than hardcoding each trip, so new fixtures (no-photos-demo and any
future one) are picked up with no Makefile edit. The only per-trip specific —
the source `dailies/` folder mapping to `01.dailies/` in the pages tree — is
uniform across fixtures, so one loop covers all. chown is scoped per fixture
dir (never the whole 01.trips tree) and all copies stay `|| true`.

Verified on the worktree server: a full reset then reload restores both
italy-2026-demo (7 gpx + 12 entries + stories) and no-photos-demo; trip suite
green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDS6t8wcpbwKvvrxykVQ5K
This commit is contained in:
2026-07-07 23:03:54 +02:00
co-authored by Claude Opus 4.8
parent af07ef403c
commit b752178eb4
+16 -21
View File
@@ -93,29 +93,24 @@ install-plugins:
# ── Demo content ────────────────────────────────────────────────────────────── # ── Demo content ──────────────────────────────────────────────────────────────
demo-load: demo-load:
# Load italy-2026-demo trip (create pages if absent) # Load every fixture trip under docs/demo/trips/ into the pages tree.
docker exec intotheeast_grav bash -c "\ # Source uses dailies/ + 04.stories/; dailies/ maps to 01.dailies/ on copy.
mkdir -p /var/www/html/user/pages/01.trips/italy-2026-demo/01.dailies /var/www/html/user/pages/01.trips/italy-2026-demo/04.stories && \ # All copies are `|| true` so a fixture absent from an older user/ is skipped.
cp /var/www/html/user/docs/demo/trips/italy-2026-demo/trip.md /var/www/html/user/pages/01.trips/italy-2026-demo/trip.md 2>/dev/null || true && \ docker exec intotheeast_grav bash -c 'for src in /var/www/html/user/docs/demo/trips/*/; do \
cp /var/www/html/user/docs/demo/trips/italy-2026-demo/stories.md /var/www/html/user/pages/01.trips/italy-2026-demo/04.stories/stories.md 2>/dev/null || true && \ slug=$$(basename "$$src"); dst=/var/www/html/user/pages/01.trips/$$slug; \
cp -r /var/www/html/user/docs/demo/trips/italy-2026-demo/04.stories/. /var/www/html/user/pages/01.trips/italy-2026-demo/04.stories/ 2>/dev/null || true && \ mkdir -p "$$dst/01.dailies" "$$dst/04.stories"; \
cp -r /var/www/html/user/docs/demo/trips/italy-2026-demo/dailies/. /var/www/html/user/pages/01.trips/italy-2026-demo/01.dailies/ && \ cp "$$src/trip.md" "$$dst/trip.md" 2>/dev/null || true; \
cp /var/www/html/user/docs/demo/trips/italy-2026-demo/*.gpx /var/www/html/user/pages/01.trips/italy-2026-demo/ 2>/dev/null || true && \ cp "$$src/stories.md" "$$dst/04.stories/stories.md" 2>/dev/null || true; \
chown -R 1000:1000 /var/www/html/user/pages/01.trips/italy-2026-demo && \ cp -r "$$src/04.stories/." "$$dst/04.stories/" 2>/dev/null || true; \
cd /var/www/html && php bin/grav clearcache" cp -r "$$src/dailies/." "$$dst/01.dailies/" 2>/dev/null || true; \
# Load no-photos-demo fixture (AE4: no cover_image, no entry images -> text-only header, no banner). cp "$$src"/*.gpx "$$dst/" 2>/dev/null || true; \
# Guarded with `|| true` so runs whose user/ predates the fixture (e.g. the main chown -R 1000:1000 "$$dst"; \
# checkout before this branch merges) skip it instead of failing globalSetup. done; cd /var/www/html && php bin/grav clearcache'
docker exec intotheeast_grav bash -c "\
mkdir -p /var/www/html/user/pages/01.trips/no-photos-demo/01.dailies /var/www/html/user/pages/01.trips/no-photos-demo/04.stories && \
cp /var/www/html/user/docs/demo/trips/no-photos-demo/trip.md /var/www/html/user/pages/01.trips/no-photos-demo/trip.md 2>/dev/null || true && \
cp /var/www/html/user/docs/demo/trips/no-photos-demo/stories.md /var/www/html/user/pages/01.trips/no-photos-demo/04.stories/stories.md 2>/dev/null || true && \
cp -r /var/www/html/user/docs/demo/trips/no-photos-demo/dailies/. /var/www/html/user/pages/01.trips/no-photos-demo/01.dailies/ 2>/dev/null || true && \
chown -R 1000:1000 /var/www/html/user/pages/01.trips/no-photos-demo && \
cd /var/www/html && php bin/grav clearcache"
demo-reset: demo-reset:
docker exec intotheeast_grav bash -c "rm -rf /var/www/html/user/pages/01.trips/italy-2026-demo /var/www/html/user/pages/01.trips/no-photos-demo && cd /var/www/html && php bin/grav clearcache" docker exec intotheeast_grav bash -c 'for src in /var/www/html/user/docs/demo/trips/*/; do \
rm -rf /var/www/html/user/pages/01.trips/$$(basename "$$src"); \
done; cd /var/www/html && php bin/grav clearcache'
pixelfed-import: pixelfed-import:
docker exec intotheeast_grav bash -c "which python3 || apt-get install -y python3 --no-install-recommends -q" docker exec intotheeast_grav bash -c "which python3 || apt-get install -y python3 --no-install-recommends -q"