Files
mediaproc/ctrl/generate.sh

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 rpc/protos/worker.proto \
--targets proto
# Generate gRPC stubs from proto
echo "Generating gRPC stubs..."
python -m grpc_tools.protoc \
-I rpc/protos \
--python_out=rpc \
--grpc_python_out=rpc \
rpc/protos/worker.proto
# Fix relative import in generated grpc stub
sed -i 's/^import worker_pb2/from . import worker_pb2/' rpc/worker_pb2_grpc.py
echo "Done!"