yotei/uwusched-nodes/src/head.rs
2024-09-09 15:15:02 +00:00

65 lines
1.7 KiB
Rust

mod config;
mod grpc;
use crate::config::CONFIG;
use clap::{Parser, Subcommand};
use log::{debug, info};
use tonic::transport::Server;
// Import generated protobuf
mod sched {
tonic::include_proto!("sched");
// pub(crate) const FILE_DESCRIPTOR_SET: FileDescriptorSet =
// tonic::include_file_descriptor_set!("protocol_descriptor").into();
}
#[derive(Parser)]
#[command(author, version, about)]
#[command(propagate_version = true)]
struct Cli {
#[command(subcommand)]
command: Option<Commands>,
#[arg(short, long)]
/// Optional path to config file
config_file: Option<String>,
}
#[derive(Subcommand)]
enum Commands {
/// Starts uwusched
Start { role: Option<String> },
}
fn get_type_of<T>(_: &T) -> &'static str {
std::any::type_name::<T>()
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
std::env::set_var("RUST_LOG", CONFIG.log.level.clone());
pretty_env_logger::init();
let addr = "[::1]:50051".parse()?;
info!("Starting gRPC server on {}", addr);
let data = grpc::DataService::default();
let auth = grpc::AuthService::default();
// let reflection = tonic_reflection::server::Builder::configure()
// .register_file_descriptor_set(sched::FILE_DESCRIPTOR_SET)
// .build_v1()?;
Server::builder()
.add_service(sched::data_server::DataServer::new(data))
.add_service(sched::auth_server::AuthServer::new(auth))
.serve(addr)
.await?;
debug!("{:?}", CONFIG.node);
// let cli = Cli::parse();
// match &cli.command {
// Some(Commands::Start { role }) => {
// debug!("{:#?}", role)
// }
// None => {}
// }
Ok(())
}