47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Model generation script for MPR
|
|
# Generates Django, Pydantic, TypeScript, and Protobuf from schema/models
|
|
|
|
set -e
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
echo "Generating models from schema/models..."
|
|
|
|
# Django ORM models
|
|
python -m modelgen from-schema \
|
|
--schema schema/models \
|
|
--output mpr/media_assets/models.py \
|
|
--targets django
|
|
|
|
# Pydantic schemas for FastAPI
|
|
python -m modelgen from-schema \
|
|
--schema schema/models \
|
|
--output api/schemas/models.py \
|
|
--targets pydantic
|
|
|
|
# TypeScript types for Timeline UI
|
|
python -m modelgen from-schema \
|
|
--schema schema/models \
|
|
--output ui/timeline/src/types.ts \
|
|
--targets typescript
|
|
|
|
# Protobuf for gRPC
|
|
python -m modelgen from-schema \
|
|
--schema schema/models \
|
|
--output grpc/protos/worker.proto \
|
|
--targets proto
|
|
|
|
# Generate gRPC stubs from proto
|
|
echo "Generating gRPC stubs..."
|
|
python -m grpc_tools.protoc \
|
|
-I grpc/protos \
|
|
--python_out=grpc \
|
|
--grpc_python_out=grpc \
|
|
grpc/protos/worker.proto
|
|
|
|
# Fix relative import in generated grpc stub
|
|
sed -i 's/^import worker_pb2/from . import worker_pb2/' grpc/worker_pb2_grpc.py
|
|
|
|
echo "Done!"
|