diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs index 2b3aebd..30832d3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ +use anyhow::Result; use hyper::server::conn::http1; use hyper::service::service_fn; use hyper_util::rt::TokioIo; -use sqlx::sqlite::SqlitePool; use tokio::net::TcpListener; mod assets; @@ -21,29 +21,30 @@ mod validation; use model::config; #[tokio::main] -async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { - +async fn main() -> Result<()> { env_logger::init(); let config = config::from_env() .unwrap_or_else(|err| panic!("Error reading config: {err}")); - let pool = SqlitePool::connect(&format!("sqlite:{}", config.db_path)) - .await - .unwrap(); + let db_conn = db::init(&config.db_path).await?; let assets = assets::get(); - let templates = templates::get(); + let templates = templates::get()?; - tokio::spawn(jobs::start(config.clone(), pool.clone(), templates.clone())); + tokio::spawn(jobs::start( + config.clone(), + db_conn.clone(), + templates.clone(), + )); let listener = TcpListener::bind(config.socket_address).await?; log::info!("Starting server at {}", config.socket_address); loop { let config = config.clone(); - let pool = pool.clone(); + let db_conn = db_conn.clone(); let assets = assets.clone(); let templates = templates.clone(); let (stream, _) = listener.accept().await?; @@ -57,7 +58,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { service_fn(move |req| { routes::routes( config.clone(), - pool.clone(), + db_conn.clone(), assets.clone(), templates.clone(), req, |