- 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
41 lines
1 KiB
Bash
Executable file
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
|