aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-server/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/atuin-server/src')
-rw-r--r--crates/atuin-server/src/lib.rs13
-rw-r--r--crates/atuin-server/src/router.rs4
-rw-r--r--crates/atuin-server/src/settings.rs7
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)