managarten/scripts/mac-mini/build-landings.sh
Till JS ae04c9e194 chore(mana): citycorners + food + wardrobe aus unified-App entfernen
Citycorners-Reste vom vorherigen Sprint mit committet. food → Nutriphi,
wardrobe → Werdrobe sind als Standalone-Apps live; die mana.how-unified-
App trägt die Modul-Surfaces nicht mehr.

Gelöscht / abgebaut:
- Module: apps/mana/.../modules/{food,wardrobe} + Routen + Locales
- Landing-Apps: apps/{food,citycorners}/ Top-Level
- Backend: apps/api/src/modules/{food,wardrobe} + MCP-Tools log_meal /
  nutrition_summary, picture-routes verifyMediaOwnership-Allowlist
- shared-branding: APP_BRANDING, APP_ICONS, MANA_APPS, Logos, Onboarding
- shared-ai, mana-tool-registry, credits, shared-types/spaces,
  shared-utils/analytics, spiral-db/MANA_APP_INDEX, website-blocks
- Cross-Module: Body-CalorieWeightChart, Comic-CharacterPicker-Wardrobe,
  website-Embed wardrobe.outfits, DaySnapshot.nutrition, FoodEventType,
  MealLogged/Meal*-Streaks/Goals/Companion/Trigger, AI-Agent-Policy,
  GoalEditor MealLogged, MyDay/RitualRunner/Rules nutrition-Refs,
  Crypto-Registry meals/wardrobeGarments/wardrobeOutfits
- Generic: PlaceCategory 'food' (places + geocoding + Locales),
  spaces.ts 'food'/'wardrobe' Modul-IDs
- Infrastruktur: cloudflared, docker-compose CORS, nginx-Landing,
  prometheus-Probe, load-tests, package.json dev-Scripts,
  generate-env, mac-mini/build-landings, dependabot

Dexie v62 Migration:
- droppt meals, goals, foodFavorites, mealTags, wardrobeGarments,
  wardrobeOutfits Tabellen
- entfernt wardrobeOutfitId / wardrobeGarmentId aus images-Index
- Upgrade-Callback strippt die toten FK-Properties aus alten image-Rows

Test/Doku:
- module-registry.test.ts: Snapshot refresht auf aktuellen Stand mit
  56 Modulen (vorher 32, statisch eingefroren pre-refactor). Plus
  LEGACY_TABLES-Exclusion für nicht-mehr-registrierte Tabellen aus
  cards/citycorners/moodlit/rituals/wishes/who.
- streaks.test.ts: MealLogged-Test in TaskCompleted-Test umgebaut
- apps/mana/CLAUDE.md: food-Refs in AI-Tool-Tabelle und
  AiProposalInbox-Liste entfernt
- validate-i18n-keys.mjs + validate-no-recursive-turbo.mjs:
  existsSync-Guard, damit die Skripte mit gestaged-aber-rm'ten Dateien
  klarkommen

mana-web svelte-check 0 errors / 7436 files, betroffene Tests grün
(streaks, dashboard, module-registry), validate:pg-schema,
validate:turbo, validate:i18n-parity grün.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 12:47:33 +02:00

54 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
# Build all landing pages and copy dist/ to the shared nginx volume
# Run on the Mac Mini after git pull
#
# Usage: ./scripts/mac-mini/build-landings.sh
set -e
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
OUTPUT_DIR="/Volumes/ManaData/landings"
echo "=== Building Landing Pages ==="
echo "Output: $OUTPUT_DIR"
echo ""
mkdir -p "$OUTPUT_DIR"
# Landing pages to build (filter name → dist path → output name)
declare -A LANDINGS=(
["it"]="services/it-landing"
["chat"]="apps/chat/apps/landing"
["picture"]="apps/picture/apps/landing"
["quotes"]="apps/quotes/apps/landing"
["presi"]="apps/presi/apps/landing"
["clock"]="apps/clock/apps/landing"
["cards"]="apps/cards/apps/landing"
)
cd "$PROJECT_ROOT"
for name in "${!LANDINGS[@]}"; do
dir="${LANDINGS[$name]}"
if [ -d "$dir" ]; then
echo "Building $name ($dir)..."
pnpm --filter "./$dir" build 2>&1 | tail -3
# Copy dist to output
if [ -d "$dir/dist" ]; then
rm -rf "$OUTPUT_DIR/$name"
cp -r "$dir/dist" "$OUTPUT_DIR/$name"
echo "$OUTPUT_DIR/$name ($(du -sh "$OUTPUT_DIR/$name" | cut -f1))"
else
echo " ⚠ No dist/ found for $name"
fi
else
echo " ⚠ Directory not found: $dir"
fi
echo ""
done
echo "=== Done ==="
echo ""
echo "Restart nginx to pick up changes:"
echo " docker restart mana-infra-landings"