[#3] Added generate proto script

This commit is contained in:
Ilyas Niyazov 2025-02-26 16:19:34 +03:00
parent 19282f13cc
commit f736bfce14
5 changed files with 92 additions and 0 deletions

36
generate_proto.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/bash
# TODO: add to MakeFile
# chmod +x generate_proto.sh
# ./generate_proto.sh
# Define directories
PROTOS_DIR="./protos"
SOURCE_DIR="${PROTOS_DIR}/source"
MODELS_DIR="${PROTOS_DIR}/models"
REPO_FROSTFS_API_PROTOS="https://git.frostfs.info/TrueCloudLab/frostfs-api.git"
rm -rf "$PROTOS_DIR"
# Step 1: Create folder ./protos
echo "1. Create folder ./protos"
mkdir -p "$PROTOS_DIR"
# Step 2: Cloning repository into ./protos/source
echo "2. Cloning repository into ./protos/source..."
mkdir -p "$SOURCE_DIR"
git clone "$REPO_FROSTFS_API_PROTOS" "$SOURCE_DIR"
# Step 3: Generating Python code from .proto files
echo "3. Generating Python code from .proto files to $MODELS_DIR"
mkdir -p "$MODELS_DIR"
find "$SOURCE_DIR" -name "*.proto" | while read -r proto_file; do
python -m grpc_tools.protoc -I "$SOURCE_DIR" --python_out="$MODELS_DIR" --pyi_out="$MODELS_DIR" --grpc_python_out="$MODELS_DIR" "$proto_file"
done
# Step 4: Making ./protos/models a Python package
echo "4. Making ./protos/models a Python package..."
touch "$MODELS_DIR/__init__.py"
echo "All steps completed successfully."