//! `shturman-splash` (bin) — Stage-0 splash. `--screenshot ` → headless PNG (VM/E2E); //! без аргументов — интерактив (dev/HW; в v0 VM используется только screenshot-режим). use shturman_splash::render_splash; use std::path::PathBuf; fn main() -> anyhow::Result<()> { shturman_common::init_tracing("shturman-splash"); match parse_screenshot_arg() { Some(path) => { render_splash(&path)?; println!("{}", path.display()); } None => { // интерактив придёт с живым дисплеем (v0.5); в v0 VM splash — только screenshot. anyhow::bail!("ожидался --screenshot (интерактивный splash — v0.5)"); } } Ok(()) } /// Разобрать `--screenshot ` / `--screenshot=` (без внешних зависимостей). fn parse_screenshot_arg() -> Option { let mut args = std::env::args().skip(1); while let Some(a) = args.next() { if a == "--screenshot" { return args.next().map(PathBuf::from); } if let Some(p) = a.strip_prefix("--screenshot=") { return Some(PathBuf::from(p)); } } None }