feat(v0.2): shturman-splash — Stage-0 splash (software-render → PNG)
P6.2: статичный брендовый splash-кадр (wordmark «Штурман» на тёмном), render_splash через shturman-render; bin с --screenshot. Без чтения шины (стартует до Power/Settings → «мгновенно»). Визуальные токены — каркас (язык v0.5). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Alexander <akotenev2003@gmail.com>
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
//! `shturman-splash` (bin) — Stage-0 splash. `--screenshot <path>` → 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 <path> (интерактивный splash — v0.5)");
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Разобрать `--screenshot <path>` / `--screenshot=<path>` (без внешних зависимостей).
|
||||
fn parse_screenshot_arg() -> Option<PathBuf> {
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user