Add 'log' cli command
This commit is contained in:
parent
3e2fa54213
commit
0484eda859
8 changed files with 213 additions and 1 deletions
14
src/cli.rs
14
src/cli.rs
|
|
@ -8,7 +8,7 @@ use directories::ProjectDirs;
|
|||
use structopt::StructOpt;
|
||||
|
||||
use crate::eval::{self, DateRange, Entry, EntryMode};
|
||||
use crate::files::arguments::{CliIdent, CliRange};
|
||||
use crate::files::arguments::{CliDate, CliIdent, CliRange};
|
||||
use crate::files::{self, FileSource, Files, ParseError};
|
||||
|
||||
use self::error::Error;
|
||||
|
|
@ -18,6 +18,7 @@ mod cancel;
|
|||
mod done;
|
||||
mod error;
|
||||
mod layout;
|
||||
mod log;
|
||||
mod print;
|
||||
mod show;
|
||||
|
||||
|
|
@ -57,6 +58,11 @@ pub enum Command {
|
|||
#[structopt(required = true)]
|
||||
entries: Vec<usize>,
|
||||
},
|
||||
/// Edits or creates a log entry
|
||||
Log {
|
||||
#[structopt(default_value = "today")]
|
||||
date: String,
|
||||
},
|
||||
/// Reformats all loaded files
|
||||
Fmt,
|
||||
}
|
||||
|
|
@ -162,6 +168,12 @@ fn run_command(
|
|||
let layout = find_layout(files, &entries, range, now);
|
||||
print::print(&layout);
|
||||
}
|
||||
Some(Command::Log { date }) => {
|
||||
match parse_eval_arg("date", date, |date: CliDate| date.eval((), now.date())) {
|
||||
Some(date) => log::log(files, date)?,
|
||||
None => process::exit(1),
|
||||
};
|
||||
}
|
||||
Some(Command::Fmt) => files.mark_all_dirty(),
|
||||
}
|
||||
Ok(())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue