43 lines
935 B
Rust
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
|
|
}
|