alt/bin/contracts-gen
toki 5488c4bc8b feat(live-trading): 브로커 포트 경계를 추가한다
실거래 경계를 열기 위한 domain, contract, API, worker, client parser 등록을 함께 추가한다.

브로커 capability 조회와 live trading capability 광고가 각 런타임에서 일관되게 검증되도록 테스트와 review artifact를 포함한다.
2026-06-07 10:24:28 +09:00

52 lines
1 KiB
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"
"alt/v1/paper_trading.proto"
"alt/v1/live_trading.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[@]}"
)