price_checker/src/main.rs

41 lines
1.2 KiB
Rust

extern crate anyhow;
extern crate clap;
pub mod price_result;
pub mod parser;
pub mod price_checker;
use price_result::PriceResult;
use price_checker::PriceChecker;
use url::Url;
use anyhow::Result;
use clap::{Arg, App, SubCommand};
fn main() -> Result<()> {
let matches = App::new("Price checker")
.version("0.1")
.author("Rémi BERTHO <remi.bertho@dalan.fr>")
.about("Check price")
.subcommand(SubCommand::with_name("check")
.about("Check from an URL")
.arg(Arg::with_name("URL")
.required(true)
.multiple(true)
.help("The URL to get price")))
.get_matches();
match matches.subcommand() {
("check", Some(check_matches)) => {
let price_checker = PriceChecker::new().unwrap();
for url_str in check_matches.values_of("URL").unwrap() {
let url = Url::parse(url_str)?;
println!("{}", price_checker.get_price(url)?) ;
}
},
_ => {
println!("{}", matches.usage());
},
}
Ok(())
}