mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 15:04:14 +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