Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/skade

bench/src/bin/bench-containers.rs

//! Bring up / tear down the bench's competitor backends (RustFS S3, Nessie,
//! Polaris). Replaces `containers/*.sh` — all the engine detection, UID mapping,
//! stale-warehouse cleanup, gateway wiring, and Polaris OAuth bootstrap live in
//! `skade_katalog_bench::containers` as pre-checks / pre-check-fixes.
//!
//!   bench-containers up [all|rustfs|nessie|polaris]   (default: all)
//!   bench-containers down [all|rustfs|nessie|polaris]
//!   bench-containers status

use anyhow::{bail, Result};
use skade_katalog_bench::containers;

fn main() -> Result<()> {
    let args: Vec<String> = std::env::args().collect();
    let cmd = args.get(1).map(String::as_str).unwrap_or("up");
    let svc = args.get(2).map(String::as_str).unwrap_or("all");
    match (cmd, svc) {
        ("up", "all") => containers::up_all(),
        ("up", "rustfs") => containers::rustfs_up(),
        ("up", "nessie") => containers::nessie_up(),
        ("up", "nessie-plain") => containers::nessie_plain_up(),
        ("up", "polaris") => containers::polaris_up(),
        // Spark+Iceberg writes a `rows`-row table (default 1M); read it back with
        // `cargo run --release --example skade_reads_spark`. The skade-vs-Spark baseline.
        ("up", "spark") => {
            let rows = args.get(3).and_then(|s| s.parse().ok()).unwrap_or(1_000_000);
            containers::spark_up(rows)
        }
        ("down", "all") => containers::down_all(),
        ("down", "spark") => containers::spark_down(),
        ("down", s) => containers::down(s),
        ("status", _) => containers::status(),
        _ => bail!("usage: bench-containers <up|down|status> [all|rustfs|nessie|polaris|spark]"),
    }
}