48 lines
1.2 KiB
Rust
Raw Normal View History

2022-10-21 15:09:22 +08:00
pub(crate) mod consts;
pub(crate) mod server;
pub(crate) mod worker;
use std::{net::ToSocketAddrs, str::FromStr};
2022-10-21 15:09:22 +08:00
use clap::Parser;
2022-10-21 15:09:22 +08:00
use libvanity::{
vanity::vanity_service_server::VanityServiceServer, worker::worker_server::WorkerServer,
};
pub use libvanity;
#[derive(Parser)]
struct Args {
#[clap(short, long, default_value = "127.0.0.1:8877")]
bind_address: String,
#[clap(short, long, default_value = "redis://127.0.0.1:6379")]
redis_address: String,
#[clap(short, long, default_value = "INFO")]
log_level: String,
}
2022-10-21 15:09:22 +08:00
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = Args::parse();
let level = tracing::Level::from_str(&args.log_level)?;
2022-10-21 15:09:22 +08:00
tracing_subscriber::FmtSubscriber::builder()
.with_max_level(level)
2022-10-21 15:09:22 +08:00
.init();
let redis = redis::Client::open(args.redis_address)?;
2022-10-21 15:09:22 +08:00
let vanity_server = server::VanityService::new(redis.clone());
let worker_server = worker::WorkerService::new(redis.clone());
tonic::transport::Server::builder()
.add_service(VanityServiceServer::new(vanity_server))
.add_service(WorkerServer::new(worker_server))
.serve(args.bind_address.to_socket_addrs()?.next().unwrap())
2022-10-21 15:09:22 +08:00
.await?;
Ok(())
}