protobufs/scripts/rust-gen.sh
Quaternions ead9b4f688
Some checks failed
continuous-integration/drone/push Build is failing
tab
2024-07-16 13:20:56 -07:00

23 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
for f in *.proto
do
name=$(basename $f .proto)
mkdir -p ./rust-grpc/$name
protoc \
--prost_out=./rust-grpc/$name \
--tonic_out=./rust-grpc/$name \
$f
#I couldn't figure out how to configure protoc to do this
sed -i "s/#\[derive(Clone, PartialEq, ::prost::Message)\]/#\[derive(Clone, PartialEq, ::prost::Message, serde::Serialize, serde::Deserialize)\]\n#\[serde(rename_all_fields = \"PascalCase\")\]/g" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub id:/\t\[serde(rename = \"ID\")\]\n\tpub id:" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub time_id:/\t\[serde(rename = \"TimeID\")\]\n\tpub time_id:" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub file_id:/\t\[serde(rename = \"FileID\")\]\n\tpub file_id:" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub game_id:/\t\[serde(rename = \"GameID\")\]\n\tpub game_id:" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub user_id:/\t\[serde(rename = \"UserID\")\]\n\tpub user_id:" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub mode_id:/\t\[serde(rename = \"ModeID\")\]\n\tpub mode_id:" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub style_id:/\t\[serde(rename = \"StyleID\")\]\n\tpub style_id:" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub state_id:/\t\[serde(rename = \"StateID\")\]\n\tpub state_id:" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub place_id:/\t\[serde(rename = \"PlaceID\")\]\n\tpub place_id:" "./rust-grpc/$name/$name.rs"
sed -i "s/\tpub vip_server_id:/\t\[serde(rename = \"VipServerID\")\]\n\tpub vip_server_id:" "./rust-grpc/$name/$name.rs"
done