fn main() -> Result<(), Box> { let proto_root = "../music-agregator/proto"; let proto_file = format!("{}/music_agregator/v1/music_agregator.proto", proto_root); let proto_file_exists = std::path::Path::new(&proto_file).exists(); let protoc_available = std::process::Command::new("protoc") .arg("--version") .output() .is_ok(); if !proto_file_exists || !protoc_available { return Ok(()); } tonic_build::configure() .build_server(false) .build_client(true) .out_dir("src/proto") .compile_protos(&[proto_file], &[proto_root])?; Ok(()) }