#!/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:/g" "./rust-grpc/$name/$name.rs" sed -i "s/\tpub time_id:/\t\[serde(rename = \"TimeID\")\]\n\tpub time_id:/g" "./rust-grpc/$name/$name.rs" sed -i "s/\tpub file_id:/\t\[serde(rename = \"FileID\")\]\n\tpub file_id:/g" "./rust-grpc/$name/$name.rs" sed -i "s/\tpub game_id:/\t\[serde(rename = \"GameID\")\]\n\tpub game_id:/g" "./rust-grpc/$name/$name.rs" sed -i "s/\tpub user_id:/\t\[serde(rename = \"UserID\")\]\n\tpub user_id:/g" "./rust-grpc/$name/$name.rs" sed -i "s/\tpub mode_id:/\t\[serde(rename = \"ModeID\")\]\n\tpub mode_id:/g" "./rust-grpc/$name/$name.rs" sed -i "s/\tpub style_id:/\t\[serde(rename = \"StyleID\")\]\n\tpub style_id:/g" "./rust-grpc/$name/$name.rs" sed -i "s/\tpub state_id:/\t\[serde(rename = \"StateID\")\]\n\tpub state_id:/g" "./rust-grpc/$name/$name.rs" sed -i "s/\tpub place_id:/\t\[serde(rename = \"PlaceID\")\]\n\tpub place_id:/g" "./rust-grpc/$name/$name.rs" sed -i "s/\tpub vip_server_id:/\t\[serde(rename = \"VipServerID\")\]\n\tpub vip_server_id:/g" "./rust-grpc/$name/$name.rs" done