From d83fe68ed51016bbb87d83aa512ef8b9d3f0780e Mon Sep 17 00:00:00 2001 From: "Adam T. Carpenter" Date: Thu, 15 Apr 2021 20:03:01 -0400 Subject: split config into modules that actually need it, started parsing args --- src/config.rs | 54 ------------------------------------------------------ 1 file changed, 54 deletions(-) delete mode 100644 src/config.rs (limited to 'src/config.rs') diff --git a/src/config.rs b/src/config.rs deleted file mode 100644 index da65385..0000000 --- a/src/config.rs +++ /dev/null @@ -1,54 +0,0 @@ -use crate::TwinHError; -use once_cell::sync::Lazy; -use std::{env, error::Error, net::IpAddr, net::Ipv4Addr, net::SocketAddr}; - -pub static CONFIG_INSTANCE: Lazy = Lazy::new(|| match Config::new() { - Ok(c) => c, - Err(e) => panic!("twinh: config error: {}", e), -}); - -#[derive(Clone, Debug)] -pub struct Config { - pub bind_addr: SocketAddr, - pub db_path: String, -} - -impl Default for Config { - fn default() -> Self { - Self { - bind_addr: SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 5353), - db_path: String::from("/var/db/twinh"), - } - } -} - -impl Config { - fn new() -> Result> { - let mut args = env::args().skip(1); - - let db_path = args - .next() - .ok_or_else(|| TwinHError(String::from("database directory not provided")))?; - - let mut config = Config { - bind_addr: SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 5353), - db_path, - }; - - while let Some(arg) = args.next() { - match arg.as_str() { - "--addr" => { - let addr = args.next().unwrap_or_default().parse()?; - config.bind_addr.set_ip(addr); - } - "--port" => { - let port = args.next().unwrap_or_default().parse()?; - config.bind_addr.set_port(port); - } - _ => {} - }; - } - - Ok(config) - } -} -- cgit v1.2.3