diff options
Diffstat (limited to 'src/bin/jt2.rs')
-rw-r--r-- | src/bin/jt2.rs | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/src/bin/jt2.rs b/src/bin/jt2.rs index 3d85229..25a3a13 100644 --- a/src/bin/jt2.rs +++ b/src/bin/jt2.rs @@ -15,42 +15,47 @@ fn main() -> anyhow::Result<()> { SubCommand::Init { journalname, description, - } => init(&config.dirname, &journalname, &description)?, - SubCommand::IsJournal => is_journal(&config.dirname)?, - SubCommand::New { title } => new_draft(&title, &config.dirname, &config.editor)?, - SubCommand::Edit { draft } => edit_draft(&config.dirname, &config.editor, &draft)?, - SubCommand::Finish { draft, basename } => finish_draft(&config.dirname, &draft, &basename)?, + } => init(&config.dirname, &journalname, &description, &config)?, + SubCommand::IsJournal => is_journal(&config)?, + SubCommand::New { title } => new_draft(&title, &config)?, + SubCommand::Edit { draft } => edit_draft(&draft, &config)?, + SubCommand::Finish { draft, basename } => finish_draft(&draft, &basename, &config)?, } Ok(()) } -fn init(dirname: &Path, _journalname: &str, _description: &str) -> anyhow::Result<()> { - Journal::init(dirname)?; +fn init( + dirname: &Path, + _journalname: &str, + _description: &str, + config: &Configuration, +) -> anyhow::Result<()> { + Journal::init(dirname, &config.entries)?; Ok(()) } -fn is_journal(dirname: &Path) -> anyhow::Result<()> { - if !Journal::is_journal(dirname) { - return Err(JournalError::NotAJournal(dirname.display().to_string()).into()); +fn is_journal(config: &Configuration) -> anyhow::Result<()> { + if !Journal::is_journal(&config.dirname, &config.entries) { + return Err(JournalError::NotAJournal(config.dirname.display().to_string()).into()); } Ok(()) } -fn new_draft(title: &str, dirname: &Path, editor: &str) -> anyhow::Result<()> { - let journal = Journal::new(dirname)?; - journal.new_draft(title, editor)?; +fn new_draft(title: &str, config: &Configuration) -> anyhow::Result<()> { + let journal = Journal::new(&config.dirname, &config.entries)?; + journal.new_draft(title, &config.editor)?; Ok(()) } -fn edit_draft(dirname: &Path, editor: &str, draft: &str) -> anyhow::Result<()> { - let journal = Journal::new(dirname)?; +fn edit_draft(draft: &str, config: &Configuration) -> anyhow::Result<()> { + let journal = Journal::new(&config.dirname, &config.entries)?; let filename = journal.pick_draft(draft)?; - journal.edit_draft(editor, &filename)?; + journal.edit_draft(&config.editor, &filename)?; Ok(()) } -fn finish_draft(dirname: &Path, draft: &str, basename: &str) -> anyhow::Result<()> { - let journal = Journal::new(dirname)?; +fn finish_draft(draft: &str, basename: &str, config: &Configuration) -> anyhow::Result<()> { + let journal = Journal::new(&config.dirname, &config.entries)?; let filename = journal.pick_draft(draft)?; journal.finish_draft(&filename, basename)?; Ok(()) |