[update] refactored configuration handling with comprehensive ConfigFile
structure, added default settings, expanded support for new modules, and enhanced directory creation logic
This commit is contained in:
@@ -4,37 +4,48 @@ mod db;
|
||||
mod models;
|
||||
mod services;
|
||||
|
||||
use crate::config::{AppSettings};
|
||||
use crate::config::{AppSettings, ConfigFile};
|
||||
use anyhow::Result;
|
||||
use axum::Router;
|
||||
use axum::routing::get;
|
||||
use tokio::signal;
|
||||
use tracing::{info};
|
||||
use tracing::info;
|
||||
use tracing_subscriber;
|
||||
use tracing_subscriber::EnvFilter;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<()> {
|
||||
tracing_subscriber::fmt()
|
||||
.with_target(false)
|
||||
.compact()
|
||||
.with_env_filter(EnvFilter::from_default_env())
|
||||
.json() // For production
|
||||
.init();
|
||||
|
||||
let app_settings = AppSettings::get_app_settings();
|
||||
info!("Starting server");
|
||||
|
||||
AppSettings::default();
|
||||
let mut app_settings = AppSettings::get_app_settings();
|
||||
|
||||
AppSettings::ensure_default_directory(&app_settings)
|
||||
.expect("Failed to create default directory");
|
||||
|
||||
app_settings.config = ConfigFile::load_from_file(&AppSettings::get_app_settings())
|
||||
.expect("Failed to load config file");
|
||||
|
||||
let pool = db::initialize_db(&app_settings).await?;
|
||||
|
||||
let app = create_app(pool);
|
||||
|
||||
let listener =
|
||||
tokio::net::TcpListener::bind(format!("{}:{}", app_settings.config.server.host, app_settings.config.server.port)).await?;
|
||||
info!("Server starting on {}:{}", app_settings.config.server.host, app_settings.config.server.port);
|
||||
let listener = tokio::net::TcpListener::bind(format!(
|
||||
"{}:{}",
|
||||
&app_settings.config.server.host, &app_settings.config.server.port
|
||||
))
|
||||
.await?;
|
||||
info!(
|
||||
"Server starting on http://{}:{}",
|
||||
&app_settings.config.server.host, &app_settings.config.server.port
|
||||
);
|
||||
|
||||
axum::serve(listener, app)
|
||||
.with_graceful_shutdown(shutdown_signal())
|
||||
.await?;
|
||||
info!("Server stopped");
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
Reference in New Issue
Block a user