use std::{fs::File, io::BufReader};
use openair::parse;
macro_rules! fail {
($msg:expr) => {{
println!("Error: {}", $msg);
std::process::exit(1);
}};
}
fn main() -> std::io::Result<()> {
env_logger::init();
println!("Starting parser...");
let filename = match std::env::args().nth(1) {
Some(f) => f,
None => fail!("Missing filename parameter"),
};
let file = File::open(filename)?;
let mut reader = BufReader::new(file);
let airspaces: Vec<_> = parse(&mut reader)
.collect::<Result<Vec<_>, _>>()
.unwrap_or_else(|e| fail!(e));
println!("Airspaces:");
for airspace in airspaces {
println!("- {airspace}");
}
println!("Done.");
Ok(())
}