use structopt::StructOpt;
#[derive(StructOpt, Debug)]
#[structopt(name = "IPGen")]
struct App {
#[structopt(name = "NAME")]
name: String,
#[structopt(short, long, name = "NETWORK")]
network: Option<String>,
}
fn run(app: App) -> ipgen::Result<()> {
match app.network {
Some(network) => {
let ip_addr = ipgen::ip(&app.name, network.parse()?)?;
println!("{}", ip_addr);
}
None => println!("{}", ipgen::subnet(&app.name)?),
}
Ok(())
}
fn main() {
if let Err(error) = run(App::from_args()) {
eprintln!("{}", error);
std::process::exit(1);
}
}