use std::path::PathBuf;
use clap::Parser;
use liblrs::{builder::Builder, properties};
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct Args {
#[arg(short, long)]
input_osm_file: PathBuf,
#[arg(short, long)]
output_lrs: PathBuf,
#[arg(short, long)]
lrm_tag: String,
}
fn main() {
let cli_args = Args::parse();
let required = properties!("railway" => "rail");
let to_reject = properties!(
"service"=> "siding",
"service"=> "spur",
"building"=> "*",
"area"=> "yes",
"gauge"=> "600",
"roller_coaster"=> "*",
"construction"=> "*"
);
let mut builder = Builder::new();
builder.read_from_osm(
&cli_args.input_osm_file,
&cli_args.lrm_tag,
required,
to_reject,
Some(&mut liblrs::LoggingDataIssueReporter),
);
builder.save(
&cli_args.output_lrs,
properties!("source" => "OpenStreetMap", "licence" => "OdBL"),
);
}