Allow tasks to be canceled

This commit is contained in:
Joscha 2021-12-31 23:57:40 +01:00
parent e0cb1c8f23
commit 0e4ef7fef3
13 changed files with 107 additions and 14 deletions

View file

@ -13,6 +13,7 @@ use crate::files::{self, Files};
use self::error::Result;
use self::layout::line::LineLayout;
mod cancel;
mod done;
mod error;
mod layout;
@ -49,6 +50,12 @@ pub enum Command {
#[structopt(required = true)]
entries: Vec<usize>,
},
/// Marks one or more entries as canceled
Cancel {
/// Entries to mark as done
#[structopt(required = true)]
entries: Vec<usize>,
},
/// Reformat all loaded files
Fmt,
}
@ -107,6 +114,14 @@ fn run_command(opt: &Opt, files: &mut Files, range: DateRange, now: NaiveDateTim
let layout = find_layout(files, &entries, range, now);
print::print(&layout);
}
Some(Command::Cancel { entries: ns }) => {
let entries = find_entries(files, range)?;
let layout = find_layout(files, &entries, range, now);
cancel::cancel(files, &entries, &layout, ns, now)?;
let entries = find_entries(files, range)?;
let layout = find_layout(files, &entries, range, now);
print::print(&layout);
}
Some(Command::Fmt) => files.mark_all_dirty(),
}
Ok(())