Files
rust-actixweb-diesel-api/src/main.rs
2020-11-30 02:37:37 +05:30

43 lines
935 B
Rust

#[macro_use]
extern crate log;
#[macro_use]
extern crate diesel;
#[macro_use]
extern crate diesel_migrations;
use actix_web::{App, HttpServer};
use dotenv::dotenv;
use listenfd::ListenFd;
use std::env;
mod db;
mod product;
mod schema;
mod api_error;
#[actix_rt::main]
async fn main() -> std::io::Result<()> {
dotenv().ok();
env_logger::init();
db::init();
let mut listenfd = ListenFd::from_env();
let mut server = HttpServer::new(||
App::new()
.configure(product::init_routes)
);
server = match listenfd.take_tcp_listener(0)? {
Some(listener) => server.listen(listener)?,
None => {
let host = env::var("HOST").expect("Host not set in .env file");
let port = env::var("PORT").expect("Port not set in .env file");
server.bind(format!("{}:{}", host, port))?
},
};
info!("Starting Server");
server.run().await
}