From 5a45cd14102a4a1d488099ab2e89dbdaa256ec64 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Fri, 14 Jun 2024 09:54:46 -0600 Subject: [PATCH] comment THE PLAN --- pttodoer/src/main.rs | 61 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/pttodoer/src/main.rs b/pttodoer/src/main.rs index 18af025..97fc891 100644 --- a/pttodoer/src/main.rs +++ b/pttodoer/src/main.rs @@ -123,14 +123,35 @@ impl DB { set.save_due_as(f.display().to_string())?; } - std::process::Command::new("/bin/sh") - .current_dir(d.path()) - .arg("-c") - .arg("vim -p ./*") - .spawn() - .expect("failed to start vim") - .wait() - .expect("failed to vim"); + //std::process::Command::new("/bin/sh") + // .current_dir(d.path()) + // .arg("-c") + // .arg("vim -p ./*") + // .spawn() + // .expect("failed to start vim") + // .wait() + // .expect("failed to vim"); + + for set in &self.0 { + let base = set.file.split("/").last().unwrap().to_string(); + let f = d.path().join(base); + let edited = TasksAndMetadata::new(f.display().to_string()); + + let not_due = set.not_due(); + let was_due = set.due(); + + // for each in was_due + // if not in edited + // not_due.push + // due = [] + // for each in edited + // if not due + // not_due.push + // else + // due.push + // all = not_due + due + // save to self.0 + } Err("not impl".to_string()) } @@ -192,6 +213,18 @@ impl TasksAndMetadata { } } + pub fn due(&self) -> TasksAndMetadata { + let mut cloned = self.clone(); + cloned.tasks = cloned.tasks.due(); + cloned + } + + pub fn not_due(&self) -> TasksAndMetadata { + let mut cloned = self.clone(); + cloned.tasks = cloned.tasks.not_due(); + cloned + } + pub fn save(&self, dry_run: bool) -> Result<(), String> { let version = file_version(self.file.clone())?; let mut file = self.file.clone(); @@ -214,9 +247,7 @@ impl TasksAndMetadata { } pub fn save_due_as(&self, file: String) -> Result<(), String> { - let mut cloned = self.clone(); - cloned.tasks = cloned.tasks.due(); - cloned.save_as(file) + self.due().save_as(file) } pub fn save_as(&self, file: String) -> Result<(), String> { @@ -365,6 +396,14 @@ impl Tasks { ) } + pub fn not_due(&self) -> Tasks { + Tasks(self.0.iter() + .filter(|x| !x.is_due()) + .map(|x| x.clone()) + .collect() + ) + } + pub fn due(&self) -> Tasks { Tasks(self.0.iter() .filter(|x| x.is_due())