diff options
Diffstat (limited to 'crates/atuin-server/src')
| -rw-r--r-- | crates/atuin-server/src/lib.rs | 13 | ||||
| -rw-r--r-- | crates/atuin-server/src/router.rs | 4 | ||||
| -rw-r--r-- | crates/atuin-server/src/settings.rs | 7 |
3 files changed, 10 insertions, 14 deletions
diff --git a/crates/atuin-server/src/lib.rs b/crates/atuin-server/src/lib.rs index 7a0e982b..f1d616f2 100644 --- a/crates/atuin-server/src/lib.rs +++ b/crates/atuin-server/src/lib.rs @@ -45,10 +45,7 @@ async fn shutdown_signal() { eprintln!("Shutting down gracefully..."); } -pub async fn launch<Db: Database>( - settings: Settings<Db::Settings>, - addr: SocketAddr, -) -> Result<()> { +pub async fn launch<Db: Database>(settings: Settings, addr: SocketAddr) -> Result<()> { if settings.tls.enable { launch_with_tls::<Db>(settings, addr, shutdown_signal()).await } else { @@ -64,7 +61,7 @@ pub async fn launch<Db: Database>( } pub async fn launch_with_tcp_listener<Db: Database>( - settings: Settings<Db::Settings>, + settings: Settings, listener: TcpListener, shutdown: impl Future<Output = ()> + Send + 'static, ) -> Result<()> { @@ -78,7 +75,7 @@ pub async fn launch_with_tcp_listener<Db: Database>( } async fn launch_with_tls<Db: Database>( - settings: Settings<Db::Settings>, + settings: Settings, addr: SocketAddr, shutdown: impl Future<Output = ()>, ) -> Result<()> { @@ -135,9 +132,7 @@ pub async fn launch_metrics_server(host: String, port: u16) -> Result<()> { Ok(()) } -async fn make_router<Db: Database>( - settings: Settings<<Db as Database>::Settings>, -) -> Result<Router, eyre::Error> { +async fn make_router<Db: Database>(settings: Settings) -> Result<Router, eyre::Error> { let db = Db::new(&settings.db_settings) .await .wrap_err_with(|| format!("failed to connect to db: {:?}", settings.db_settings))?; diff --git a/crates/atuin-server/src/router.rs b/crates/atuin-server/src/router.rs index ae63e1e8..6d168f63 100644 --- a/crates/atuin-server/src/router.rs +++ b/crates/atuin-server/src/router.rs @@ -105,10 +105,10 @@ async fn semver(request: Request, next: Next) -> Response { #[derive(Clone)] pub struct AppState<DB: Database> { pub database: DB, - pub settings: Settings<DB::Settings>, + pub settings: Settings, } -pub fn router<DB: Database>(database: DB, settings: Settings<DB::Settings>) -> Router { +pub fn router<DB: Database>(database: DB, settings: Settings) -> Router { let routes = Router::new() .route("/", get(handlers::index)) .route("/healthz", get(handlers::health::health_check)) diff --git a/crates/atuin-server/src/settings.rs b/crates/atuin-server/src/settings.rs index d5070dae..7221d4dd 100644 --- a/crates/atuin-server/src/settings.rs +++ b/crates/atuin-server/src/settings.rs @@ -1,9 +1,10 @@ use std::{io::prelude::*, path::PathBuf}; +use atuin_server_database::DbSettings; use config::{Config, Environment, File as ConfigFile, FileFormat}; use eyre::{Result, eyre}; use fs_err::{File, create_dir_all}; -use serde::{Deserialize, Serialize, de::DeserializeOwned}; +use serde::{Deserialize, Serialize}; static EXAMPLE_CONFIG: &str = include_str!("../server.toml"); @@ -53,7 +54,7 @@ impl Default for Metrics { } #[derive(Clone, Debug, Deserialize, Serialize)] -pub struct Settings<DbSettings> { +pub struct Settings { pub host: String, pub port: u16, pub path: String, @@ -78,7 +79,7 @@ pub struct Settings<DbSettings> { pub db_settings: DbSettings, } -impl<DbSettings: DeserializeOwned> Settings<DbSettings> { +impl Settings { pub fn new() -> Result<Self> { let mut config_file = if let Ok(p) = std::env::var("ATUIN_CONFIG_DIR") { PathBuf::from(p) |
