Initial commit

This commit is contained in:
2026-02-23 13:02:22 +03:00
commit 42d2900df9
108 changed files with 4491 additions and 0 deletions

71
generate.sh Normal file
View 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