alt/bin/contracts-gen
toki aaf1af6387 feat(paper-trading): paper 상태 모니터링을 연결한다
Paper trading readiness에서 API/worker/CLI가 같은 protobuf 계약으로 paper state를 시작하고 조회할 수 있어야 한다. Headless 운영 경로를 먼저 닫기 위해 contract, worker runtime, API forwarding, CLI scenario, client parser map과 검증 artifact를 함께 반영한다.
2026-06-05 15:14:41 +09:00

51 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"
)
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[@]}"
)