From 0ec1a74a11b1bdec819c3b1ccd2e368c4b75a0f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christina=20S=C3=B8rensen?= Date: Fri, 10 May 2024 13:35:35 +0200 Subject: [PATCH] feat: check arguments length MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Christina Sørensen --- src/main.rs | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/src/main.rs b/src/main.rs index 7ffee6d..e4265e1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,29 +5,21 @@ use std::{env, io}; fn main() -> io::Result<()> { let args: Vec = env::args().collect(); - // TODO: change expected length to rfc3339 - // if args.len() == 1 || args[1].len() != 8 as usize { - // println!("usage: since hh:mm:ss"); - // std::process::abort(); - // } + if args.len() == 1 + || !(args[1].len() == 8 as usize + || args[1].len() == 19 as usize + || args[1].len() == 21 as usize) + { + println!("usage: since hh:mm:ss"); //8 + println!("usage: since yyyy-mm-dd hh:mm:ss"); //19 + println!("usage: since "); //21 + std::process::abort(); + } let buffer = &args[1]; - //println!("{buffer}"); - let tz = *Local::now().offset(); - // println!( - // "{}", - // NaiveDateTime::new( - // Local::now().date_naive(), - // NaiveTime::parse_from_str("12:00:00", "%H:%M:%S").unwrap() - // ) - // .and_local_timezone(tz) - // .single() - // .unwrap() - // ); - let timestamp: DateTime; if let Some(t) = buffer.parse::>().ok() { timestamp = t; @@ -44,12 +36,8 @@ fn main() -> io::Result<()> { std::process::abort(); } - // NOTE: is local appropriate here? let now = Local::now(); - // println!("{}", timestamp.to_rfc3339()); - // println!("{}", now.to_rfc3339()); - let delta = DateTime::signed_duration_since(now, timestamp); let days = ((delta.num_seconds() / 60) / 60) / 24;