summaryrefslogtreecommitdiff
path: root/src/bin/jt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/jt.rs')
-rw-r--r--src/bin/jt.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/bin/jt.rs b/src/bin/jt.rs
new file mode 100644
index 0000000..11fc45d
--- /dev/null
+++ b/src/bin/jt.rs
@@ -0,0 +1,29 @@
+use jt::config::Configuration;
+use jt::opt::{Opt, SubCommand};
+
+use structopt::StructOpt;
+
+fn main() {
+ if let Err(err) = do_work() {
+ eprintln!("ERROR: {:?}", err);
+ std::process::exit(1);
+ }
+}
+
+fn do_work() -> anyhow::Result<()> {
+ pretty_env_logger::init_custom_env("JT_LOG");
+ let opt = Opt::from_args();
+ let config = Configuration::read(&opt)?;
+ match opt.cmd {
+ SubCommand::Config(x) => x.run(&config)?,
+ SubCommand::Init(x) => x.run(&config)?,
+ SubCommand::IsJournal(x) => x.run(&config)?,
+ SubCommand::New(x) => x.run(&config)?,
+ SubCommand::NewTopic(x) => x.run(&config)?,
+ SubCommand::List(x) => x.run(&config)?,
+ SubCommand::Edit(x) => x.run(&config)?,
+ SubCommand::Remove(x) => x.run(&config)?,
+ SubCommand::Finish(x) => x.run(&config)?,
+ }
+ Ok(())
+}