master
Bel LaPointe 2024-05-23 15:45:01 -04:00
parent e90cf02664
commit c7163268d4
1 changed files with 23 additions and 10 deletions

View File

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