frostfs-sdk-go/prepare.sh
Airat Arifullin cf53517a47 [#XX] api: Generate new namespace protobufs
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-11-07 00:34:14 +03:00

44 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
if [ -z "$1" ]; then
echo "usage: ./prepare.sh path/to/frostfs-api"
exit 1
fi
API_GO_PATH=$(pwd)/api
API_PATH=$1
# MOVE FILES FROM API REPO
cd "$API_PATH" || exit 1
ARGS=$(find ./ -name '*.proto' -not -path './bin/*')
for file in $ARGS; do
dir=$(dirname "$file")
mkdir -p "$API_GO_PATH/$dir/grpc"
cp -r "$dir"/* "$API_GO_PATH/$dir/grpc"
done
# MODIFY FILES
cd "$API_GO_PATH" || exit 1
ARGS2=$(find ./ -name '*.proto' -not -path './bin/*')
for file in $ARGS2; do
echo "$file"
sed -i "s/import\ \"\(.*\)\/\(.*\)\.proto\";/import\ \"\1\/grpc\/\2\.proto\";/" $file
sed -i "s/api-go\\/v2/sdk-go\\/api/" $file
sed -i "s/import \"/import \"api\//" $file
base_path="git.frostfs.info/TrueCloudLab/frostfs-sdk-go/api"
dir_path=$(dirname "$file" | sed 's/^\.\///')
package_name=$(dirname "$dir_path")
sed -i "2ioption go_package = \"$base_path/$package_name/grpc;$package_name\";" "$file"
done
cd "$API_GO_PATH/.." || exit 1
# COMPILE
make protoc
# REMOVE PROTO DEFINITIONS
ARGS=$(find ./$prefix -name '*.proto' -not -path './util/*' -not -path './bin/*')
for file in $ARGS; do
rm "$file"
done