use pipey::Pipey;
use tokio::signal;
use tracing::{error, info};
#[actix_web::main]
async fn main() -> std::io::Result<()> {
let (server, app_state) = Pipey::run_server().await?;
let handle = server.handle();
tokio::spawn(server);
match signal::ctrl_c().await {
Ok(()) => {
info!("received shutdown signal");
app_state.shutdown().await;
info!("Arifa shutdown complete");
handle.stop(true).await;
info!("HTTP server stopped");
}
Err(err) => {
error!(error = %err, "failed to listen for shutdown signal");
}
}
Ok(())
}