KeiSeiKit-1.0/_primitives/_rust/mock-render/src/cmd_screenshot.rs
Parfii-bot 37c8e857d7 refactor(mock-render): split main.rs 227 LOC into 4 cubes (F5a Constructor Pattern)
main.rs 227→55 + cli_args.rs + cmd_screenshot.rs + cmd_lock.rs + cmd_verify.rs (each <100 LOC).
2026-04-22 13:36:17 +08:00

34 lines
981 B
Rust

//! `mock-render screenshot <url> --out <png> [--viewport WxH]`
//!
//! Extracted from `main.rs` in v0.14.1 per Constructor Pattern.
use crate::cli_args::{flag, parse_viewport};
use crate::render;
use std::path::PathBuf;
use std::process::ExitCode;
pub fn run(args: &[String]) -> ExitCode {
let Some(url) = args.first().cloned() else {
eprintln!("screenshot: <url> required");
return ExitCode::from(1);
};
let out = match flag(args, "--out") {
Some(p) => PathBuf::from(p),
None => {
eprintln!("screenshot: --out <png> required");
return ExitCode::from(1);
}
};
let viewport = flag(args, "--viewport").and_then(parse_viewport);
match render::screenshot(&url, &out, viewport) {
Ok(()) => {
println!("{}", out.display());
ExitCode::SUCCESS
}
Err(e) => {
eprintln!("mock-render: {e}");
ExitCode::from(1)
}
}
}