Add CLI bin
This commit is contained in:
parent
78a4f0225a
commit
85880613c6
@ -12,4 +12,5 @@ chrono = { version = "0.4", features = ["serde"] }
|
|||||||
leptos = { version = "0.7", features = ["csr"] }
|
leptos = { version = "0.7", features = ["csr"] }
|
||||||
console_error_panic_hook = "0.1.7"
|
console_error_panic_hook = "0.1.7"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
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
21
src/bin/cli.rs
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
19
src/lib.rs
19
src/lib.rs
@ -1,2 +1,21 @@
|
|||||||
|
use crate::session_date_calculator::Day;
|
||||||
|
use chrono::Weekday;
|
||||||
|
|
||||||
pub mod session_date_calculator;
|
pub mod session_date_calculator;
|
||||||
pub mod webpage;
|
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")
|
||||||
|
)
|
||||||
|
}
|
||||||
17
src/main.rs
17
src/main.rs
@ -1,5 +1,3 @@
|
|||||||
use chrono::Weekday;
|
|
||||||
use jana_sessions_webpage::session_date_calculator::Day;
|
|
||||||
use jana_sessions_webpage::webpage;
|
use jana_sessions_webpage::webpage;
|
||||||
use leptos::prelude::*;
|
use leptos::prelude::*;
|
||||||
|
|
||||||
@ -9,18 +7,3 @@ fn main() {
|
|||||||
mount_to_body(webpage::App);
|
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")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user