#!/usr/bin/env bash # Synchronises the vendored copy of whynot-design from a pinned upstream commit. # Source: ~/whynot-design (worktree) or a clone from gitea. # # Usage: ./scripts/sync-whynot-design.sh [] # Default: reads .whynot-design-ref from the vendor directory, else HEAD. # # Pulls Layer 1 (tokens + CSS) and Layer 2 (Lit web components) so the # observatory UI picks up design-system changes on re-run. set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" VENDOR_DIR="$ROOT/ui/vendor/whynot-design" REF_FILE="$VENDOR_DIR/.whynot-design-ref" SRC_REPO="${WHYNOT_DESIGN_SRC:-$HOME/whynot-design}" REF="${1:-}" if [[ -z "$REF" && -f "$REF_FILE" ]]; then REF="$(cat "$REF_FILE")" fi if [[ -z "$REF" ]]; then REF="HEAD" fi if [[ ! -d "$SRC_REPO/.git" ]]; then echo "Source not found: $SRC_REPO" >&2 echo "Set WHYNOT_DESIGN_SRC or clone gitea:whynot/whynot-design there." >&2 exit 1 fi mkdir -p "$VENDOR_DIR/tokens" "$VENDOR_DIR/elements" git -C "$SRC_REPO" show "$REF:src/styles/colors_and_type.css" > "$VENDOR_DIR/colors_and_type.css" git -C "$SRC_REPO" show "$REF:src/styles/components.css" > "$VENDOR_DIR/components.css" git -C "$SRC_REPO" show "$REF:src/index.js" > "$VENDOR_DIR/index.js" for f in atoms.js chrome.js form.js icons.js layout.js _styles.js; do git -C "$SRC_REPO" show "$REF:src/elements/$f" > "$VENDOR_DIR/elements/$f" done for f in colors.json type.json spacing.json index.json; do git -C "$SRC_REPO" show "$REF:tokens/$f" > "$VENDOR_DIR/tokens/$f" done git -C "$SRC_REPO" rev-parse "$REF" > "$REF_FILE" echo "Vendor synced → $VENDOR_DIR (ref: $(cat "$REF_FILE"))"