- 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
50 lines
1,002 B
Bash
Executable file
50 lines
1,002 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
proto_root="$root/packages/contracts/proto"
|
|
go_out="$root/packages/contracts/gen/go"
|
|
dart_out="$root/apps/client/lib/src/generated"
|
|
dart_plugin="$root/apps/client/tool/protoc-gen-dart"
|
|
|
|
require_cmd() {
|
|
if ! command -v "$1" >/dev/null 2>&1; then
|
|
echo "contracts-gen: required command not found: $1" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
require_cmd protoc
|
|
require_cmd protoc-gen-go
|
|
|
|
if [ ! -x "$dart_plugin" ]; then
|
|
echo "contracts-gen: dart protoc plugin wrapper missing or not executable: $dart_plugin" >&2
|
|
exit 1
|
|
fi
|
|
|
|
protos=(
|
|
"alt/v1/common.proto"
|
|
"alt/v1/market.proto"
|
|
"alt/v1/backtest.proto"
|
|
)
|
|
|
|
mkdir -p "$go_out"
|
|
mkdir -p "$dart_out"
|
|
|
|
(
|
|
cd "$proto_root"
|
|
protoc \
|
|
-I . \
|
|
--go_out="$go_out" \
|
|
--go_opt=paths=source_relative \
|
|
"${protos[@]}"
|
|
)
|
|
|
|
(
|
|
cd "$proto_root"
|
|
protoc \
|
|
-I . \
|
|
--plugin=protoc-gen-dart="$dart_plugin" \
|
|
--dart_out="$dart_out" \
|
|
"${protos[@]}"
|
|
)
|