diff options
| author | Ellie Huxtable <e@elm.sh> | 2021-04-13 19:14:07 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-13 19:14:07 +0100 |
| commit | 5751463942cc91f1f1ffaf6e2ac633d7a0085f25 (patch) | |
| tree | f7b5b9a4702c4c3ef29aa60d36612f61ffeae052 /src/main.rs | |
| parent | Update config (diff) | |
| download | atuin-5751463942cc91f1f1ffaf6e2ac633d7a0085f25.zip | |
Add history sync, resolves #13 (#31)
* Add encryption
* Add login and register command
* Add count endpoint
* Write initial sync push
* Add single sync command
Confirmed working for one client only
* Automatically sync on a configurable frequency
* Add key command, key arg to login
* Only load session if it exists
* Use sync and history timestamps for download
* Bind other key code
Seems like some systems have this code for up arrow? I'm not sure why,
and it's not an easy one to google.
* Simplify upload
* Try and fix download sync loop
* Change sync order to avoid uploading what we just downloaded
* Multiline import fix
* Fix time parsing
* Fix importing history with no time
* Add hostname to sync
* Use hostname to filter sync
* Fixes
* Add binding
* Stuff from yesterday
* Set cursor modes
* Make clippy happy
* Bump version
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/main.rs b/src/main.rs index bac75362..ae459807 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,7 +6,7 @@ use std::path::PathBuf; use eyre::{eyre, Result}; -use structopt::StructOpt; +use structopt::{clap::AppSettings, StructOpt}; #[macro_use] extern crate log; @@ -30,18 +30,21 @@ use command::AtuinCmd; use local::database::Sqlite; use settings::Settings; +mod api; mod command; mod local; mod remote; mod settings; +mod utils; pub mod schema; #[derive(StructOpt)] #[structopt( author = "Ellie Huxtable <e@elm.sh>", - version = "0.4.0", - about = "Magical shell history" + version = "0.5.0", + about = "Magical shell history", + global_settings(&[AppSettings::ColoredHelp, AppSettings::DeriveDisplayOrder]) )] struct Atuin { #[structopt(long, parse(from_os_str), help = "db file path")] @@ -52,9 +55,7 @@ struct Atuin { } impl Atuin { - fn run(self) -> Result<()> { - let settings = Settings::new()?; - + fn run(self, settings: &Settings) -> Result<()> { let db_path = if let Some(db_path) = self.db { let path = db_path .to_str() @@ -67,11 +68,13 @@ impl Atuin { let mut db = Sqlite::new(db_path)?; - self.atuin.run(&mut db, &settings) + self.atuin.run(&mut db, settings) } } fn main() -> Result<()> { + let settings = Settings::new()?; + fern::Dispatch::new() .format(|out, message, record| { out.finish(format_args!( @@ -85,5 +88,5 @@ fn main() -> Result<()> { .chain(std::io::stdout()) .apply()?; - Atuin::from_args().run() + Atuin::from_args().run(&settings) } |
