use std::{env, path::PathBuf};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
    std::env::set_var("CARGO_MANIFEST_DIR", std::env::var("PWD").unwrap());
    let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
    let proto_dir = manifest_dir.join("./protos/");
    let proto_dir_file = manifest_dir.join("./protos/protocol.proto");


    tonic_build::configure()
        .file_descriptor_set_path(out_dir.join("protocol_descriptor.bin"))
        // .compile(&["../protos/protocol.proto"], &["../protos"])?;
    .compile(&[proto_dir_file.clone()], &[proto_dir])?;
    tonic_build::compile_protos(proto_dir_file)?;
    Ok(())
}