Configurable path
This commit is contained in:
+4
-2
@@ -1,10 +1,11 @@
|
|||||||
use std::env;
|
use std::{env, path::PathBuf};
|
||||||
|
|
||||||
use secrecy::SecretString;
|
use secrecy::SecretString;
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
pub server_secret: SecretString,
|
pub server_secret: SecretString,
|
||||||
|
pub state_dir: PathBuf,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Error, Debug)]
|
#[derive(Error, Debug)]
|
||||||
@@ -19,7 +20,8 @@ impl Config {
|
|||||||
pub fn new() -> Result<Self, ConfigError> {
|
pub fn new() -> Result<Self, ConfigError> {
|
||||||
dotenvy::dotenv().map_err(|err| ConfigError::Unknown(err.into()))?;
|
dotenvy::dotenv().map_err(|err| ConfigError::Unknown(err.into()))?;
|
||||||
let server_secret = env::var("SERVER_SECRET").map(SecretString::from).map_err(|_| ConfigError::MissingServerSecret)?;
|
let server_secret = env::var("SERVER_SECRET").map(SecretString::from).map_err(|_| ConfigError::MissingServerSecret)?;
|
||||||
Ok(Self{server_secret})
|
let state_dir = env::var("RUKOSYNC_STATE_DIR").map_or_else(|_| PathBuf::from("/tmp/"), PathBuf::from);
|
||||||
|
Ok(Self{server_secret, state_dir})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -1,5 +1,3 @@
|
|||||||
use std::path::Path;
|
|
||||||
|
|
||||||
use axum::{Json, Router, response::{IntoResponse as _, Response}, routing};
|
use axum::{Json, Router, response::{IntoResponse as _, Response}, routing};
|
||||||
use rukosync::{api::{syncs, users}, app::AppState, config::Config, };
|
use rukosync::{api::{syncs, users}, app::AppState, config::Config, };
|
||||||
use tower_http::trace::TraceLayer;
|
use tower_http::trace::TraceLayer;
|
||||||
@@ -18,9 +16,10 @@ async fn main() -> anyhow::Result<()> {
|
|||||||
.init();
|
.init();
|
||||||
let config = Config::new()?;
|
let config = Config::new()?;
|
||||||
|
|
||||||
let app_state = AppState::new(Path::new("/tmp/kosync.db"), &config).await?;
|
let db_path = config.state_dir.join("kosync.db");
|
||||||
|
tracing::info!("Database at {:?}", db_path);
|
||||||
|
let app_state = AppState::new(&db_path, &config).await?;
|
||||||
|
|
||||||
tracing::info!("Hello");
|
|
||||||
|
|
||||||
let app = Router::new()
|
let app = Router::new()
|
||||||
.route("/healthcheck", routing::get(healthcheck))
|
.route("/healthcheck", routing::get(healthcheck))
|
||||||
|
|||||||
Reference in New Issue
Block a user