rust-remote/src/utils.rs

49 lines
1.5 KiB
Rust
Raw Normal View History

2024-07-07 03:42:11 +03:00
use std::{env, fs::File, io::Read};
use crate::{Config, Runner};
pub fn take_args() -> Option<Runner> {
let args: Vec<String> = 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<Config> {
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<String> = 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,
}
}