extern crate timespan;
use timespan::NaiveTimeSpan;
fn usage() {
println!(
"Please provide exactly 7 arguments!
Usage: [span]
[from_span_fmt] [from_start_fmt] [from_end_fmt]
[to_span_fmt] [to_start_fmt] [to_end_fmt]"
);
}
fn main() {
let mut args = std::env::args();
if args.len() != 8 {
usage();
std::process::exit(1);
}
args.next();
let s = args.next().unwrap();
let from_span_fmt = args.next().unwrap();
let from_start_fmt = args.next().unwrap();
let from_end_fmt = args.next().unwrap();
let to_span_fmt = args.next().unwrap();
let to_start_fmt = args.next().unwrap();
let to_end_fmt = args.next().unwrap();
let span = match NaiveTimeSpan::parse_from_str(
s.as_str(),
from_span_fmt.as_str(),
from_start_fmt.as_str(),
from_end_fmt.as_str(),
) {
Ok(s) => s,
Err(e) => {
println!("An error occured: {}", e);
std::process::exit(2);
}
};
println!(
"{}",
span.format(
to_span_fmt.as_str(),
to_start_fmt.as_str(),
to_end_fmt.as_str(),
)
);
}