Initial commit
This commit is contained in:
71
generate.sh
Normal file
71
generate.sh
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
# ─────────────────────────────────────────────────────────
|
||||
# Скрипт генерации кода из proto файлов.
|
||||
# Запускай после каждого изменения .proto файлов.
|
||||
#
|
||||
# Требования:
|
||||
# - buf (https://buf.build/docs/installation)
|
||||
# npm install -g @bufbuild/buf
|
||||
# ИЛИ
|
||||
# - protoc + плагины (см. ниже)
|
||||
# ─────────────────────────────────────────────────────────
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROTO_DIR="$SCRIPT_DIR/proto"
|
||||
|
||||
echo "=== Generating code from proto files ==="
|
||||
|
||||
# ─── Вариант 1: Через Buf (рекомендуется) ────────────────
|
||||
if command -v buf &> /dev/null; then
|
||||
echo "Using buf..."
|
||||
cd "$PROTO_DIR"
|
||||
buf dep update
|
||||
buf generate
|
||||
echo "Done! Generated Go and Dart code."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ─── Вариант 2: Через protoc напрямую ────────────────────
|
||||
if command -v protoc &> /dev/null; then
|
||||
echo "Using protoc..."
|
||||
|
||||
# Проверяем плагины
|
||||
for plugin in protoc-gen-go protoc-gen-go-grpc protoc-gen-dart; do
|
||||
if ! command -v $plugin &> /dev/null; then
|
||||
echo "ERROR: $plugin not found. Install it:"
|
||||
echo " Go plugins: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest"
|
||||
echo " go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest"
|
||||
echo " Dart plugin: dart pub global activate protoc_plugin"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Генерация Go
|
||||
protoc \
|
||||
--proto_path="$PROTO_DIR" \
|
||||
--go_out="$SCRIPT_DIR/backend/gen" \
|
||||
--go_opt=paths=source_relative \
|
||||
--go-grpc_out="$SCRIPT_DIR/backend/gen" \
|
||||
--go-grpc_opt=paths=source_relative \
|
||||
"$PROTO_DIR/notes/v1/notes.proto"
|
||||
|
||||
# Генерация Dart
|
||||
protoc \
|
||||
--proto_path="$PROTO_DIR" \
|
||||
--dart_out=grpc:"$SCRIPT_DIR/frontend/lib/gen" \
|
||||
"$PROTO_DIR/notes/v1/notes.proto"
|
||||
|
||||
echo "Done! Generated Go and Dart code."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "ERROR: Neither buf nor protoc found."
|
||||
echo ""
|
||||
echo "Install buf (recommended):"
|
||||
echo " npm install -g @bufbuild/buf"
|
||||
echo ""
|
||||
echo "Or install protoc:"
|
||||
echo " https://github.com/protocolbuffers/protobuf/releases"
|
||||
exit 1
|
||||
Reference in New Issue
Block a user