Files
mediaproc/ctrl/generate.sh

58 lines
1.6 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: domain models + enums
python -m modelgen from-schema \
--schema schema/models \
--output mpr/media_assets/models.py \
--targets django \
--include dataclasses,enums
# Pydantic schemas for FastAPI: domain models + enums
python -m modelgen from-schema \
--schema schema/models \
--output api/schemas/models.py \
--targets pydantic \
--include dataclasses,enums
# TypeScript types for Timeline UI: domain models + enums + API types
python -m modelgen from-schema \
--schema schema/models \
--output ui/timeline/src/types.ts \
--targets typescript \
--include dataclasses,enums,api
# Graphene types for GraphQL: domain models + enums + API types
python -m modelgen from-schema \
--schema schema/models \
--output api/schemas/graphql_types.py \
--targets graphene \
--include dataclasses,enums,api
# Protobuf for gRPC: gRPC messages + service
python -m modelgen from-schema \
--schema schema/models \
--output rpc/protos/worker.proto \
--targets proto \
--include grpc
# 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!"