Add CLI bin

This commit is contained in:
Leonard Steppy 2025-02-14 15:29:15 +01:00
parent 78a4f0225a
commit 85880613c6
4 changed files with 42 additions and 18 deletions

View File

@ -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"
serde_json = "1.0"
clap = { version = "4.5", features = ["derive"] }

21
src/bin/cli.rs Normal file
View File

@ -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<NthWeekday>
}
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();
}
}

View File

@ -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")
)
}

View File

@ -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")
)
}