fn main()

in router/build.rs [4:45]


fn main() -> Result<(), Box<dyn Error>> {
    // Try to get the git sha from the local git repository
    if EmitBuilder::builder()
        .fail_on_error()
        .git_sha(false)
        .emit()
        .is_err()
    {
        // Unable to get the git sha
        if let Ok(sha) = std::env::var("GIT_SHA") {
            // Set it from an env var
            println!("cargo:rustc-env=VERGEN_GIT_SHA={sha}");
        }
    }

    // Set docker label if present
    if let Ok(label) = std::env::var("DOCKER_LABEL") {
        // Set it from an env var
        println!("cargo:rustc-env=DOCKER_LABEL={label}");
    }

    #[cfg(feature = "grpc")]
    {
        use std::env;
        use std::fs;
        use std::path::PathBuf;

        fs::create_dir("src/grpc/pb").unwrap_or(());

        let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
        tonic_build::configure()
            .build_client(false)
            .build_server(true)
            .file_descriptor_set_path(out_dir.join("descriptor.bin"))
            .out_dir("src/grpc/pb")
            .include_file("mod.rs")
            .compile(&["../proto/tei.proto"], &["../proto"])
            .unwrap_or_else(|e| panic!("protobuf compilation failed: {}", e));
    }

    Ok(())
}