mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 16:14:12 +00:00
feat: add update-contracts.sh for type extraction workflow
Script extracts types from payload-types.ts, updates the payload-contracts repo, builds to verify, and optionally pushes. Usage: ./scripts/update-contracts.sh [--push] Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
e904f0949b
commit
d50d3cd208
1 changed files with 73 additions and 0 deletions
73
scripts/update-contracts.sh
Executable file
73
scripts/update-contracts.sh
Executable file
|
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# update-contracts.sh
|
||||||
|
#
|
||||||
|
# Updates the payload-contracts repo with fresh types from the CMS.
|
||||||
|
# Run this after modifying collections or blocks and regenerating types.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# ./scripts/update-contracts.sh # Extract, build, and prompt for commit
|
||||||
|
# ./scripts/update-contracts.sh --push # Also push to GitHub
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
CMS_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
|
CONTRACTS_DIR="/home/payload/payload-contracts"
|
||||||
|
PAYLOAD_TYPES="$CMS_DIR/src/payload-types.ts"
|
||||||
|
|
||||||
|
echo "=== Update Payload Contracts ==="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 1. Verify payload-types.ts exists
|
||||||
|
if [ ! -f "$PAYLOAD_TYPES" ]; then
|
||||||
|
echo "ERROR: $PAYLOAD_TYPES not found."
|
||||||
|
echo "Run: pnpm payload generate:types"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2. Verify contracts repo exists
|
||||||
|
if [ ! -d "$CONTRACTS_DIR" ]; then
|
||||||
|
echo "ERROR: $CONTRACTS_DIR not found."
|
||||||
|
echo "Clone: git clone https://github.com/complexcaresolutions/payload-contracts.git $CONTRACTS_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3. Run type extraction
|
||||||
|
echo "[1/3] Extracting types..."
|
||||||
|
cd "$CONTRACTS_DIR"
|
||||||
|
npx tsx scripts/extract-types.ts "$PAYLOAD_TYPES"
|
||||||
|
|
||||||
|
# 4. Build to verify
|
||||||
|
echo ""
|
||||||
|
echo "[2/3] Building..."
|
||||||
|
pnpm build
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "[3/3] Checking for changes..."
|
||||||
|
cd "$CONTRACTS_DIR"
|
||||||
|
|
||||||
|
if git diff --quiet && git diff --cached --quiet; then
|
||||||
|
echo "No changes detected."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Changes detected:"
|
||||||
|
git diff --stat
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 5. Commit
|
||||||
|
read -p "Commit message (or 'skip'): " MSG
|
||||||
|
if [ "$MSG" != "skip" ] && [ -n "$MSG" ]; then
|
||||||
|
git add -A
|
||||||
|
git commit -m "$MSG"
|
||||||
|
|
||||||
|
if [ "$1" = "--push" ]; then
|
||||||
|
echo "Pushing to GitHub..."
|
||||||
|
git push
|
||||||
|
echo "Done! Contracts updated and pushed."
|
||||||
|
else
|
||||||
|
echo "Committed locally. Run 'cd $CONTRACTS_DIR && git push' to publish."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Skipped commit. Changes are unstaged."
|
||||||
|
fi
|
||||||
Loading…
Reference in a new issue