32 lines
No EOL
934 B
Bash
Executable file
32 lines
No EOL
934 B
Bash
Executable file
#!/bin/bash
|
|
|
|
# TODO: add to MakeFile
|
|
# chmod +x generate_proto.sh
|
|
# ./generate_proto.sh
|
|
|
|
|
|
# Define directories
|
|
PROTOS_DIR="./frostfs_sdk/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"
|
|
|
|
echo "1. Create folder ./protos"
|
|
mkdir -p "$PROTOS_DIR"
|
|
|
|
echo "2. Cloning repository into ./protos/source..."
|
|
mkdir -p "$SOURCE_DIR"
|
|
git clone "$REPO_FROSTFS_API_PROTOS" "$SOURCE_DIR"
|
|
|
|
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
|
|
|
|
echo "4. Making ./protos/models a Python package..."
|
|
touch "$MODELS_DIR/__init__.py"
|
|
|
|
echo "All steps completed successfully." |