alt/bin/contracts-check
toki 88c673d973 feat: contract codegen baseline - add proto code generation for client and server
- Add proto files for backtest and market domains
- Generate Go code in packages/contracts/gen/go
- Generate Dart code in apps/client/lib/src/generated
- Add contracts-gen and contracts-check binaries
- Update pubspec.yaml with protoc dependencies
- Update go.work with new module
2026-05-28 05:29:03 +09:00

41 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
go_out="$root/packages/contracts/gen/go"
dart_out="$root/apps/client/lib/src/generated"
snapshot_dir="$(mktemp -d)"
trap 'rm -rf "$snapshot_dir"' EXIT
snapshot_go="$snapshot_dir/go"
snapshot_dart="$snapshot_dir/dart"
mkdir -p "$snapshot_go" "$snapshot_dart"
if [ -d "$go_out" ]; then
cp -R "$go_out/." "$snapshot_go/"
fi
if [ -d "$dart_out" ]; then
cp -R "$dart_out/." "$snapshot_dart/"
fi
"$root/bin/contracts-gen"
drift=0
if ! diff -ru "$snapshot_go" "$go_out" >/dev/null; then
echo "contracts-check: Go generated output drift detected under $go_out" >&2
diff -ru "$snapshot_go" "$go_out" >&2 || true
drift=1
fi
if ! diff -ru "$snapshot_dart" "$dart_out" >/dev/null; then
echo "contracts-check: Dart generated output drift detected under $dart_out" >&2
diff -ru "$snapshot_dart" "$dart_out" >&2 || true
drift=1
fi
if [ "$drift" -ne 0 ]; then
echo "contracts-check: run bin/contracts-gen and commit the regenerated output" >&2
exit 1
fi