quadit 0.1.5

A gitops tool to deploy systemd managed containers on linux using quadlets
Documentation
use std::{env, str::FromStr};

use anyhow::Result;
use tracing::Level;
use tracing_subscriber::FmtSubscriber;

use quadit::service_manager::ServiceManager;

#[tokio::main]
async fn main() -> Result<()> {
    if dotenvy::dotenv().is_ok() {
        println!("Using .env")
    }

    let log_level = Level::from_str(
        env::var("LOG_LEVEL")
            .unwrap_or_else(|_| "info".to_string())
            .as_str(),
    )
    .unwrap_or(Level::INFO);
    let subscriber = FmtSubscriber::builder().with_max_level(log_level).finish();
    tracing::subscriber::set_global_default(subscriber).expect("Setting default subscriber failed");

    svc().await?;

    Ok(())
}

async fn svc() -> Result<(), anyhow::Error> {
    if env::args().collect::<Vec<_>>().len() != 1 {
        const VERSION: &str = env!("CARGO_PKG_VERSION");
        println!("quadit Server Edition v{}", VERSION);
        println!("This process accepts no arguments.");
        println!("See documentation https://github.com/ubiquitous-factory/quadit/");
    } else {
        let mut svc = ServiceManager::configured().await?;
        svc.run().await?;
    }
    Ok(())
}