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/remote/server.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/remote/server.rs')
| -rw-r--r-- | src/remote/server.rs | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/remote/server.rs b/src/remote/server.rs index cd2ca7b8..de58397d 100644 --- a/src/remote/server.rs +++ b/src/remote/server.rs @@ -17,13 +17,15 @@ use super::auth::*; embed_migrations!("migrations"); pub fn launch(settings: &Settings, host: String, port: u16) { + let settings: Settings = settings.clone(); // clone so rocket can manage it + let mut database_config = HashMap::new(); let mut databases = HashMap::new(); - database_config.insert("url", Value::from(settings.remote.db_uri.clone())); + database_config.insert("url", Value::from(settings.server.db_uri.clone())); databases.insert("atuin", Value::from(database_config)); - let connection = establish_connection(settings); + let connection = establish_connection(&settings); embedded_migrations::run(&connection).expect("failed to run migrations"); let config = Config::build(Environment::Production) @@ -36,8 +38,20 @@ pub fn launch(settings: &Settings, host: String, port: u16) { let app = rocket::custom(config); - app.mount("/", routes![index, register, add_history, login]) - .attach(AtuinDbConn::fairing()) - .register(catchers![internal_error, bad_request]) - .launch(); + app.mount( + "/", + routes![ + index, + register, + add_history, + login, + get_user, + sync_count, + sync_list + ], + ) + .manage(settings) + .attach(AtuinDbConn::fairing()) + .register(catchers![internal_error, bad_request]) + .launch(); } |
