annis-web 0.2.0

This is an experimental version of ANNIS corpus search frontend.
Documentation
use annis_web::{app, config::CliConfig};
use chrono::Duration;
use clap::Parser;
use std::{net::SocketAddr, str::FromStr};
use tracing::{error, info};
use tracing_subscriber::EnvFilter;

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt()
        .with_env_filter(EnvFilter::from_str("sqlx::query=warn,graphannis_core=warn,info").unwrap())
        .init();

    let cli = CliConfig::parse();

    let addr = SocketAddr::from(([127, 0, 0, 1], cli.port));
    match app(&cli, Duration::hours(1)).await {
        Ok(router) => {
            info!("Starting server with address http://{addr}", addr = addr);
            let server = axum::Server::bind(&addr).serve(router.into_make_service());
            if let Err(e) = server.await {
                error!("{}", e);
            }
        }
        Err(e) => {
            error!("Could not initialize server. {}", e);
        }
    }
}