From b752178eb4a3ea045cddaa3940ebf979d6f34696 Mon Sep 17 00:00:00 2001 From: Mischa Date: Tue, 7 Jul 2026 23:03:54 +0200 Subject: [PATCH] refactor(demo-load): iterate docs/demo/trips/* instead of per-trip blocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Claude-Session: https://claude.ai/code/session_01RDS6t8wcpbwKvvrxykVQ5K --- Makefile | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index c0303b1..372130c 100644 --- a/Makefile +++ b/Makefile @@ -93,29 +93,24 @@ install-plugins: # ── Demo content ────────────────────────────────────────────────────────────── demo-load: - # Load italy-2026-demo trip (create pages if absent) - docker exec intotheeast_grav bash -c "\ - 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 && \ - 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 && \ - 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 && \ - 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 && \ - 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 /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 && \ - chown -R 1000:1000 /var/www/html/user/pages/01.trips/italy-2026-demo && \ - cd /var/www/html && php bin/grav clearcache" - # Load no-photos-demo fixture (AE4: no cover_image, no entry images -> text-only header, no banner). - # Guarded with `|| true` so runs whose user/ predates the fixture (e.g. the main - # checkout before this branch merges) skip it instead of failing globalSetup. - 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" + # Load every fixture trip under docs/demo/trips/ into the pages tree. + # Source uses dailies/ + 04.stories/; dailies/ maps to 01.dailies/ on copy. + # All copies are `|| true` so a fixture absent from an older user/ is skipped. + docker exec intotheeast_grav bash -c 'for src in /var/www/html/user/docs/demo/trips/*/; do \ + slug=$$(basename "$$src"); dst=/var/www/html/user/pages/01.trips/$$slug; \ + mkdir -p "$$dst/01.dailies" "$$dst/04.stories"; \ + cp "$$src/trip.md" "$$dst/trip.md" 2>/dev/null || true; \ + cp "$$src/stories.md" "$$dst/04.stories/stories.md" 2>/dev/null || true; \ + cp -r "$$src/04.stories/." "$$dst/04.stories/" 2>/dev/null || true; \ + cp -r "$$src/dailies/." "$$dst/01.dailies/" 2>/dev/null || true; \ + cp "$$src"/*.gpx "$$dst/" 2>/dev/null || true; \ + chown -R 1000:1000 "$$dst"; \ + done; cd /var/www/html && php bin/grav clearcache' 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: docker exec intotheeast_grav bash -c "which python3 || apt-get install -y python3 --no-install-recommends -q"