atagen

malice

public
Star0
Watch0
e2b04d2f1db0421a488ad56ba2b03235eb172a76
2
ssh://brewery@pls.lobotomise.me:33/atagen/malice.git

Blame: crates/malice-static/src/main.rs

dffd63b58af4atagen2026-09-28 09:10 UTC1
use malice_static::{bind_listener, serve, static_router};
dffd63b58af4atagen2026-09-28 09:10 UTC2
dffd63b58af4atagen2026-09-28 09:10 UTC3
fn web_dir() -> Option<String> {
dffd63b58af4atagen2026-09-28 09:10 UTC4
    let dir = std::env::var("MALICE_WEB_DIR").ok()?;
dffd63b58af4atagen2026-09-28 09:10 UTC5
    assert!(
dffd63b58af4atagen2026-09-28 09:10 UTC6
        std::path::Path::new(&dir).join("index.html").is_file(),
dffd63b58af4atagen2026-09-28 09:10 UTC7
        "MALICE_WEB_DIR must point to built frontend assets containing index.html"
dffd63b58af4atagen2026-09-28 09:10 UTC8
    );
dffd63b58af4atagen2026-09-28 09:10 UTC9
    Some(dir)
dffd63b58af4atagen2026-09-28 09:10 UTC10
}
dffd63b58af4atagen2026-09-28 09:10 UTC11
dffd63b58af4atagen2026-09-28 09:10 UTC12
#[tokio::main]
dffd63b58af4atagen2026-09-28 09:10 UTC13
async fn main() {
dffd63b58af4atagen2026-09-28 09:10 UTC14
    tracing_subscriber::fmt()
dffd63b58af4atagen2026-09-28 09:10 UTC15
        .with_env_filter(
dffd63b58af4atagen2026-09-28 09:10 UTC16
            tracing_subscriber::EnvFilter::try_from_default_env()
dffd63b58af4atagen2026-09-28 09:10 UTC17
                .unwrap_or_else(|_| "malice_static=info,tower_http=info".into()),
dffd63b58af4atagen2026-09-28 09:10 UTC18
        )
dffd63b58af4atagen2026-09-28 09:10 UTC19
        .with_target(false)
dffd63b58af4atagen2026-09-28 09:10 UTC20
        .compact()
dffd63b58af4atagen2026-09-28 09:10 UTC21
        .init();
dffd63b58af4atagen2026-09-28 09:10 UTC22
dffd63b58af4atagen2026-09-28 09:10 UTC23
    let app = static_router(web_dir());
dffd63b58af4atagen2026-09-28 09:10 UTC24
    serve(bind_listener().await, app, async {}).await;
dffd63b58af4atagen2026-09-28 09:10 UTC25
}