Files
fn-design-system/sync_from_registry.sh
T
Egutierrez 2e44535949 chore: relocate mirror under fn_registry/subrepos/
Update sync script to auto-detect registry root when nested inside
fn_registry/subrepos/. Update README to reflect new location.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 19:09:42 +02:00

58 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# Sync the design system mirror from fn_registry.
# Copies:
# fn_registry/frontend/functions/ui/ → components/
# fn_registry/frontend/DESIGN_SYSTEM.md → DESIGN_SYSTEM.md
# fn_registry/frontend/package.json (filtered) → package.json (not overwritten)
#
# Usage:
# ./sync_from_registry.sh # auto-detects when inside fn_registry/subrepos/
# FN_REGISTRY_ROOT=/path/to/fn_registry ./sync_from_registry.sh
set -euo pipefail
MIRROR_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Resolve fn_registry root:
# 1. $FN_REGISTRY_ROOT if set
# 2. two levels up from script (mirror at fn_registry/subrepos/fn-design-system/)
# 3. $HOME/fn_registry as last resort
if [[ -n "${FN_REGISTRY_ROOT:-}" ]]; then
REGISTRY_ROOT="$FN_REGISTRY_ROOT"
elif [[ -d "$MIRROR_ROOT/../../frontend/functions/ui" ]]; then
REGISTRY_ROOT="$(cd "$MIRROR_ROOT/../.." && pwd)"
else
REGISTRY_ROOT="$HOME/fn_registry"
fi
if [[ ! -d "$REGISTRY_ROOT/frontend/functions/ui" ]]; then
echo "ERROR: $REGISTRY_ROOT/frontend/functions/ui not found." >&2
echo "Set FN_REGISTRY_ROOT to your fn_registry clone." >&2
exit 1
fi
echo "→ Registry root: $REGISTRY_ROOT"
SRC_UI="$REGISTRY_ROOT/frontend/functions/ui"
SRC_DOC="$REGISTRY_ROOT/frontend/DESIGN_SYSTEM.md"
DST_UI="$MIRROR_ROOT/components"
DST_DOC="$MIRROR_ROOT/DESIGN_SYSTEM.md"
echo "→ Syncing components from $SRC_UI"
mkdir -p "$DST_UI"
# Wipe destination components dir then copy fresh (avoids stale files after deletions in source)
find "$DST_UI" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
cp -r "$SRC_UI"/. "$DST_UI"/
echo "→ Syncing DESIGN_SYSTEM.md"
if [[ -f "$SRC_DOC" ]]; then
cp "$SRC_DOC" "$DST_DOC"
else
echo "WARN: $SRC_DOC not found, skipping" >&2
fi
# Counts
n_tsx=$(find "$DST_UI" -maxdepth 1 -name "*.tsx" | wc -l | tr -d ' ')
n_md=$(find "$DST_UI" -maxdepth 1 -name "*.md" | wc -l | tr -d ' ')
echo "✓ Done — $n_tsx .tsx + $n_md .md in components/"