1
use review_harvest::{server::create_app, server_config::ServerConfig};
2
use std::error::Error;
3
use std::path::Path;
4

            
5
fn read_config<P: AsRef<Path>>(config_file: P) -> Result<ServerConfig, Box<dyn Error>> {
6
    let content = std::fs::read_to_string(config_file)?;
7
    Ok(serde_json::from_str(&content)?)
8
}
9

            
10
#[tokio::main]
11
#[allow(dead_code)]
12
async fn main() -> Result<(), Box<dyn Error>> {
13
    let mut args = std::env::args();
14
    args.next();
15
    let config_file = args
16
        .next()
17
        .unwrap_or_else(|| "server_config.json".to_string());
18
    let config = read_config(&config_file)
19
        .unwrap_or_else(|_| panic!("Could not read config {}.", config_file));
20
    let app = create_app(config)?;
21

            
22
    let listener = tokio::net::TcpListener::bind("0.0.0.0:8000").await.unwrap();
23
    axum::serve(listener, app).await?;
24
    Ok(())
25
}