diff options
author | metamuffin <yvchraiqi@protonmail.com> | 2022-06-09 09:46:00 +0200 |
---|---|---|
committer | metamuffin <yvchraiqi@protonmail.com> | 2022-06-09 09:46:00 +0200 |
commit | 7a0d09e5cd0075e2a0d3db4505d7ec77dff35ae0 (patch) | |
tree | 5586745b7a9b871b31512cba9f964dabda4651f0 /client/src/main.rs | |
download | twclient-7a0d09e5cd0075e2a0d3db4505d7ec77dff35ae0.tar twclient-7a0d09e5cd0075e2a0d3db4505d7ec77dff35ae0.tar.bz2 twclient-7a0d09e5cd0075e2a0d3db4505d7ec77dff35ae0.tar.zst |
(reset git)
Diffstat (limited to 'client/src/main.rs')
-rw-r--r-- | client/src/main.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/client/src/main.rs b/client/src/main.rs new file mode 100644 index 0000000..b79f338 --- /dev/null +++ b/client/src/main.rs @@ -0,0 +1,41 @@ +use log::{error, log, warn}; +use signal_hook::{ + consts::{SIGINT, SIGTERM}, + iterator::Signals, + low_level::exit, +}; +use std::{net::IpAddr, str::FromStr, sync::atomic::Ordering, thread, time::Duration}; +use twclient::{ + client::{Client, ClientConfig}, + SHOULD_EXIT, +}; + +fn main() { + env_logger::init(); + + let mut signals = Signals::new(&[SIGTERM, SIGINT]).unwrap(); + thread::spawn(move || { + for sig in signals.forever() { + warn!("received signal {:?}", sig); + SHOULD_EXIT.store(true, Ordering::Relaxed); + thread::sleep(Duration::from_secs(3)); + error!("exit timeout!"); + exit(1); + } + }); + + let config = ClientConfig { + nick: String::from("metamuffin"), + clan: String::from("rustacean"), + timeout: String::from("asgefdhjikhjfhjf"), + }; + let mut args = std::env::args().skip(1); + let ip = IpAddr::from_str(args.next().unwrap().as_str()).unwrap(); + let port = u16::from_str(args.next().unwrap().as_str()).unwrap(); + drop(ip); + drop(port); + drop(config); + drop(Client::new_evloop()); + todo!() + // Client::run_thing(ip, port, config) +} |