Ana içeriğe geç

Proto Kod Üretim Komutları

Tüm komutlar repo kökünden çalıştırılır. Plugin'ler için PATH eklemesi:

export PATH="$PATH:$HOME/go/bin:$HOME/.pub-cache/bin"

1. Mobil (yackr) — Go

protoc -I proto \
  --go_out=backend/gen/go --go_opt=paths=source_relative \
  --go-grpc_out=backend/gen/go --go-grpc_opt=paths=source_relative \
  yackr/v1/yackr.proto

Çıktı: backend/gen/go/yackr/v1/yackr.pb.go, yackr_grpc.pb.go

2. Mobil app (yackr) — Dart

protoc -I proto --dart_out=grpc:app/lib/gen yackr/v1/yackr.proto

Çıktı: app/lib/gen/yackr/v1/yackr.{pb,pbgrpc,pbenum,pbjson}.dart

3. Panel — Go (+ ConnectRPC)

protoc -I proto \
  --go_out=backend/gen/go --go_opt=paths=source_relative \
  --go-grpc_out=backend/gen/go --go-grpc_opt=paths=source_relative \
  --connect-go_out=backend/gen/go --connect-go_opt=paths=source_relative \
  panel/v1/panel.proto

Çıktı: backend/gen/go/panel/v1/panel.pb.go, panel_grpc.pb.go, panelv1connect/panel.connect.go

4. Panel frontend — Dart

protoc -I proto --dart_out=grpc:panel/lib/gen panel/v1/panel.proto

Çıktı: panel/lib/gen/panel/v1/panel.{pb,pbgrpc,pbenum,pbjson}.dart

Hepsi tek seferde

export PATH="$PATH:$HOME/go/bin:$HOME/.pub-cache/bin"
mkdir -p backend/gen/go app/lib/gen panel/lib/gen

protoc -I proto \
  --go_out=backend/gen/go --go_opt=paths=source_relative \
  --go-grpc_out=backend/gen/go --go-grpc_opt=paths=source_relative \
  yackr/v1/yackr.proto && \
protoc -I proto --dart_out=grpc:app/lib/gen yackr/v1/yackr.proto && \
protoc -I proto \
  --go_out=backend/gen/go --go_opt=paths=source_relative \
  --go-grpc_out=backend/gen/go --go-grpc_opt=paths=source_relative \
  --connect-go_out=backend/gen/go --connect-go_opt=paths=source_relative \
  panel/v1/panel.proto && \
protoc -I proto --dart_out=grpc:panel/lib/gen panel/v1/panel.proto