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

nordisk/monetize

crates/monetize-build-thing/src/main.rs

//! `monetize-build-thing` — the emission doors. No build knowledge here.
//!
//! ```text
//! monetize-build-thing emit [root]   REWRITE .nornir/build-variants.toml from the code
//! monetize-build-thing toml          the emission, on stdout
//! monetize-build-thing --list        every declared variant and its cargo line
//! ```

use std::path::PathBuf;
use std::process::ExitCode;

fn main() -> ExitCode {
    let args: Vec<String> = std::env::args().skip(1).collect();
    let r = match args.first().map(String::as_str) {
        Some("emit") => {
            let root = args
                .get(1)
                .map(PathBuf::from)
                .unwrap_or_else(monetize_build_thing::repo_root);
            monetize_build_thing::write_emitted(&root).map(|p| println!("emitted {}", p.display()))
        }
        Some("toml") => monetize_build_thing::emitted_toml().map(|t| print!("{t}")),
        Some("--list") => {
            for v in monetize_build_thing::declared().variants {
                println!("{:<16} {}", v.name, v.command_line());
            }
            Ok(())
        }
        _ => {
            eprintln!("usage: monetize-build-thing emit [root] | toml | --list");
            return ExitCode::FAILURE;
        }
    };
    match r {
        Ok(()) => ExitCode::SUCCESS,
        Err(e) => {
            eprintln!("monetize-build-thing: {e:#}");
            ExitCode::FAILURE
        }
    }
}