lookaround/src/main.rs

56 lines
1.1 KiB
Rust
Raw Normal View History

2021-12-09 01:28:29 +00:00
use prelude::*;
2021-12-09 01:28:29 +00:00
pub mod app_common;
mod client;
mod ip;
2021-12-09 01:28:29 +00:00
pub mod message;
mod prelude;
mod server;
2021-12-05 05:01:25 +00:00
mod tlv;
fn main () -> Result <(), AppError> {
let rt = tokio::runtime::Builder::new_current_thread ()
.enable_io ()
.enable_time ()
.build ()?;
rt.block_on (async_main ())?;
Ok (())
}
async fn async_main () -> Result <(), AppError> {
let mut args = env::args ();
let _exe_name = args.next ();
2021-12-05 03:46:56 +00:00
match get_mac_address() {
Ok(Some(ma)) => {
2021-12-05 20:15:01 +00:00
println!("Our MAC addr = {}", ma);
2021-12-05 03:46:56 +00:00
}
Ok(None) => println!("No MAC address found."),
Err(e) => println!("{:?}", e),
}
let subcommand: Option <String> = args.next ();
match subcommand.as_ref ().map (|x| &x[..]) {
2021-12-05 19:58:18 +00:00
None => return Err (CliArgError::MissingSubcommand.into ()),
2021-12-09 01:28:29 +00:00
Some ("client") => client::client (args).await?,
Some ("my-ips") => my_ips ()?,
2021-12-09 01:28:29 +00:00
Some ("server") => server::server (args).await?,
2021-12-05 19:58:18 +00:00
Some (x) => return Err (CliArgError::UnknownSubcommand (x.to_string ()).into ()),
}
Ok (())
}
fn my_ips () -> Result <(), AppError> {
for addr in ip::get_ips ()?
{
println! ("{:?}", addr);
}
Ok (())
}