use std::{net::SocketAddrV4, path::PathBuf}; use structopt::StructOpt; lazy_static! { pub static ref INSTANCE: Config = Config::from_args(); } #[derive(Debug, StructOpt)] #[structopt(author, about)] pub struct Config { #[structopt( name = "DIR", required = true, parse(from_str), help = "The path to your data directory" )] pub data_dir: PathBuf, #[structopt( name = "ADDR", long = "bind-addr", required = false, default_value = "127.0.0.1:5353", help = "Sets the IP address and port to bind to" )] pub bind_addr: SocketAddrV4, #[structopt( long, short, multiple = true, parse(from_occurrences), help = "Increases log level" )] pub verbose: usize, #[structopt( long, help = "Creates a fresh data directory at DIR and exits; Fails if DIR exists" )] pub create_dir: bool, #[structopt(long, help = "Imports CSV car data into the data directory")] pub import_cars: bool, #[structopt(long, help = "Imports CSV parts data into the data directory")] pub import_parts: bool, }