codex-context/saturn/sync-context.sh

38 lines
879 B
Bash
Raw Permalink Normal View History

2026-05-04 21:44:35 +02:00
#!/usr/bin/env bash
set -euo pipefail
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || true)"
if [[ -z "$REPO_ROOT" ]]; then
echo "Not inside a git repository" >&2
exit 1
fi
if [[ "$(pwd)" != "$REPO_ROOT" ]]; then
echo "Run this script from the repo root" >&2
exit 1
fi
mapfile -t status_lines < <(git status --porcelain=v1 --untracked-files=all)
for line in "${status_lines[@]}"; do
path="${line:3}"
if [[ "$path" != "codex_context.yaml" ]]; then
echo "Refusing to sync: only codex_context.yaml may be changed" >&2
exit 1
fi
done
git pull --rebase
if git diff --quiet -- codex_context.yaml && git diff --cached --quiet -- codex_context.yaml; then
echo "No context changes to sync"
exit 0
fi
python3 -c "import yaml; yaml.safe_load(open('codex_context.yaml'))"
git add codex_context.yaml
git commit -m "update shared context"
git push