Files
intrasys/src/lib.rs
Walter Oggioni 1217e92301
All checks were successful
CI / build (push) Successful in 3m5s
initial commit
2025-07-04 20:12:28 +08:00

46 lines
1.3 KiB
Rust

use dotenv::dotenv;
use std::env;
use tracing::info;
use tracing_subscriber::layer::SubscriberExt;
mod db;
mod errors;
mod handlers;
mod models;
#[tokio::main(flavor = "current_thread")]
async fn main() {
//Parse .env file and add the environmental variables configured there
dotenv().ok();
let subscriber = tracing_subscriber::registry()
.with(tracing_subscriber::EnvFilter::new(
std::env::var("INTRASYS_LOG").unwrap_or_else(|_| "info".into()),
))
.with(tracing_subscriber::fmt::layer());
tracing::subscriber::set_global_default(subscriber)
.expect("Failed to set the global tracing subscriber");
let pool = db::create_pool().await.expect("Failed to create pool");
// Run migrations
db::run_migrations(&pool)
.await
.expect("Failed to run migrations");
// Build the application's routes
let app = handlers::create_router(pool);
// Run the server
let host = env::var("INTRASYS_HOST").unwrap_or(String::from("127.0.0.1"));
let port = env::var("INTRASYS_PORT").unwrap_or(String::from("8080"));
let listener = tokio::net::TcpListener::bind(format!("{host}:{port}"))
.await
.unwrap();
info!("listening on {}", listener.local_addr().unwrap());
axum::serve(listener, app).await.unwrap();
}
#[cfg(test)]
mod tests;