From 85880613c6f3e507ddf7f588ce7517f1902b6588 Mon Sep 17 00:00:00 2001 From: Steppy Date: Fri, 14 Feb 2025 15:29:15 +0100 Subject: [PATCH] Add CLI bin --- Cargo.toml | 3 ++- src/bin/cli.rs | 21 +++++++++++++++++++++ src/lib.rs | 19 +++++++++++++++++++ src/main.rs | 17 ----------------- 4 files changed, 42 insertions(+), 18 deletions(-) create mode 100644 src/bin/cli.rs diff --git a/Cargo.toml b/Cargo.toml index e09de2b..3e7bfff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,4 +12,5 @@ chrono = { version = "0.4", features = ["serde"] } leptos = { version = "0.7", features = ["csr"] } console_error_panic_hook = "0.1.7" serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" \ No newline at end of file +serde_json = "1.0" +clap = { version = "4.5", features = ["derive"] } \ No newline at end of file diff --git a/src/bin/cli.rs b/src/bin/cli.rs new file mode 100644 index 0000000..8babed3 --- /dev/null +++ b/src/bin/cli.rs @@ -0,0 +1,21 @@ +use clap::Parser; +use jana_sessions_webpage::localize_day; +use jana_sessions_webpage::session_date_calculator::{DayIter, NthWeekday}; +use std::io::stdin; + +#[derive(Debug, Parser)] +struct Args { + sessions: Vec +} + +fn main() { + let args = Args::parse(); + + let mut iter = DayIter::default().filter(|day| args.sessions.iter().any(|nth_weekday| nth_weekday.matches(day))); + + loop { + iter.by_ref().take(3).for_each(|day| println!("{}", localize_day(&day))); + println!("Press enter for more..."); + stdin().read_line(&mut String::new()).unwrap(); + } +} \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index 2cc29d2..e142d69 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,2 +1,21 @@ +use crate::session_date_calculator::Day; +use chrono::Weekday; + pub mod session_date_calculator; pub mod webpage; + +pub fn localize_day(day: &Day) -> String { + format!( + "{}, {}", + match day.weekday { + Weekday::Mon => "Montag", + Weekday::Tue => "Dienstag", + Weekday::Wed => "Mittwoch", + Weekday::Thu => "Donnerstag", + Weekday::Fri => "Freitag", + Weekday::Sat => "Samstag", + Weekday::Sun => "Sonntag", + }, + day.date.format("%d.%m.%Y") + ) +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 8a41b71..aeaae4b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,3 @@ -use chrono::Weekday; -use jana_sessions_webpage::session_date_calculator::Day; use jana_sessions_webpage::webpage; use leptos::prelude::*; @@ -9,18 +7,3 @@ fn main() { mount_to_body(webpage::App); } -pub fn localize_day(day: &Day) -> String { - format!( - "{}, {}", - match day.weekday { - Weekday::Mon => "Montag", - Weekday::Tue => "Dienstag", - Weekday::Wed => "Mittwoch", - Weekday::Thu => "Donnerstag", - Weekday::Fri => "Freitag", - Weekday::Sat => "Samstag", - Weekday::Sun => "Sonntag", - }, - day.date.format("%d.%m.%Y") - ) -}