tzhelp/src/cli.rs

29 lines
868 B
Rust
Raw Normal View History

2026-02-12 21:41:18 +01:00
use super::calendar::create_timetable;
use clap::Parser;
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
pub struct Args {
#[arg(short, long)]
pub timezone: Vec<String>,
#[arg(short, long)]
pub date: Option<String>,
pub time: String,
}
pub fn print_timezones(timezones: &Vec<String>, time: &String, date: &String) {
let max_len = timezones.iter().map(|t| t.len()).max().unwrap_or(0) as u32;
for timezone in timezones {
let name_padding = (0..(max_len - timezone.len() as u32))
.map(|_| " ".to_string())
.collect::<Vec<String>>()
.join("");
match create_timetable(time, date, timezone, 5) {
Ok(timetable) => println!("{}:{}\t{}", timezone, name_padding, timetable.join("\t")),
Err(error) => panic!("Failed: {}", error),
}
}
}