use std::{env, fs::File, io::Read}; use crate::{Config, Runner}; pub fn take_args() -> Option { let args: Vec = env::args().collect(); if args.len() > 1 { match &args[1][..] { "--server" => Some(Runner::Server), "--client" => Some(Runner::Client), _ => None, } } else { None } } pub fn read_config() -> Option { let mut config_file = match File::open("configs/config.txt") { Ok(config_file) => config_file, Err(_) => return None, }; let mut configs = String::new(); match config_file.read_to_string(&mut configs) { Ok(_) => { let configs: Vec = configs.split('\n').map(|x| x.to_string()).collect(); let server_address = match configs[0].split(':').last() { Some(server_address_unchecked) => match server_address_unchecked.parse() { Ok(server_address) => server_address, Err(_) => return None, }, None => return None, }; let port = match configs[1].split(':').last() { Some(port_unchecked) => match port_unchecked.parse() { Ok(port) => port, Err(_) => return None, }, None => return None, }; Some(Config { server_address, port, }) } Err(_) => None, } }