KeiSeiKit-1.0/_primitives/_rust/mock-render/src/main.rs
Parfii-bot a4e667de10 KeiSeiKit-public — clean state
Single-commit clean baseline after security scrub of niche-tells,
project codenames, internal jargon, and contributor-email leaks.

Contents:
- 100 Rust crates (_primitives/_rust/)
- 37 agent manifests (_manifests/) + generated specs (_generated/)
- 67 user-invocable skills (skills/)
- 33 hooks (hooks/)
- Composition blocks (_blocks/)
- Documentation (docs/, README.md)
- TS adapter packages (_ts_packages/)
- Assembler (_assembler/)
- Roles (_roles/)
- Templates (_templates/)
- Forgejo CI (.forgejo/)

Author: Denis Parfionovich <info@greendragon.info>

License: see LICENSE.
2026-05-01 12:09:03 +08:00

55 lines
1.7 KiB
Rust

//! mock-render — enforces the WYSIWYD invariant (What You See Is What's Deployed)
//! for block-based site-builder. Every section = one source file; screenshot is
//! a render of that file; lock freezes the hash; verify fails if source mutated.
//!
//! USAGE
//! mock-render screenshot <url> --out <png> [--viewport WxH]
//! mock-render lock --project <dir> --section <src> [--screenshot <png>]
//! mock-render verify --project <dir> --section <src>
//! mock-render status --project <dir>
mod cli_args;
mod cmd_lock;
mod cmd_screenshot;
mod cmd_verify;
mod hash;
mod render;
mod state;
use std::env;
use std::process::ExitCode;
fn main() -> ExitCode {
let args: Vec<String> = env::args().skip(1).collect();
match args.first().map(String::as_str) {
Some("screenshot") => cmd_screenshot::run(&args[1..]),
Some("lock") => cmd_lock::run(&args[1..]),
Some("verify") => cmd_verify::run_verify(&args[1..]),
Some("status") => cmd_verify::run_status(&args[1..]),
Some("--help") | Some("-h") | None => {
print_help();
ExitCode::SUCCESS
}
Some(cmd) => {
eprintln!("mock-render: unknown command '{cmd}'. Run with --help.");
ExitCode::from(1)
}
}
}
fn print_help() {
println!(
"mock-render — WYSIWYD invariant enforcer for site-builder
USAGE
mock-render screenshot <url> --out <png> [--viewport WxH]
mock-render lock --project <dir> --section <src> [--screenshot <png>]
mock-render verify --project <dir> --section <src>
mock-render status --project <dir>
EXIT
0 ok
1 usage / missing args
2 WYSIWYD invariant violated (file drift / hash mismatch)"
);
}