diff --git a/pttodoer/src/main.rs b/pttodoer/src/main.rs index e1b5cd5..7b63e9d 100644 --- a/pttodoer/src/main.rs +++ b/pttodoer/src/main.rs @@ -7,24 +7,36 @@ use croner; use clap::Parser; fn main() { - let flags = Flags::parse(); - println!("{}", flags.f()); + let flags = Flags::new(); + println!("{:?}", flags); } #[derive(Debug, Parser)] struct Flags { #[arg(short = 'f', long = "file", default_value="$PTTODO_FILE")] - f: String, + file: String, + + #[arg(short = 'a', long = "add")] + add: Option, + + #[arg(short = 's', long = "add-schedule")] + add_schedule: Option, + + #[arg(short = 'e', long = "edit", default_value="false")] + edit: bool, } impl Flags { - fn f(&self) -> String { - if self.f.get(..1) == Some("$") { - return std::env::var( - self.f.get(1..).unwrap() - ).expect("not in env"); + fn new() -> Flags { + let mut result = Flags::parse(); + + if result.file.get(..1) == Some("$") { + result.file = std::env::var( + result.file.get(1..).unwrap() + ).expect(format!("'{}' unset", result.file).as_str()); } - self.f.clone() + + result } } @@ -248,6 +260,7 @@ impl Task { } } + #[allow(dead_code)] // used in test fn set(&mut self, k: String, v: String) { self.0.insert( serde_yaml::Value::String(k), @@ -649,7 +662,7 @@ impl TS { self.0 } - #[allow(dead_code)] + #[allow(dead_code)] // used in test fn to_string(&self) -> String { DateTime::from_timestamp(self.0 as i64, 0) .unwrap()