bake_static_format/
bake_static_format.rs1use std::path::PathBuf;
4use std::process::ExitCode;
5
6fn main() -> ExitCode {
7 let Some((input, output)) = paths() else {
8 eprintln!("usage: bake_static_format <packaged input> <baked output>");
9 return ExitCode::FAILURE;
10 };
11 let packaged = match std::fs::read(&input) {
12 Ok(bytes) => bytes,
13 Err(error) => {
14 eprintln!("cannot read {}: {error}", input.display());
15 return ExitCode::FAILURE;
16 }
17 };
18 let Some(baked) = mathtex_engine::generated::bake_packaged_format(&packaged) else {
19 eprintln!("input is not a packaged format for this build target");
20 return ExitCode::FAILURE;
21 };
22 if let Err(error) = std::fs::write(&output, baked) {
23 eprintln!("cannot write {}: {error}", output.display());
24 return ExitCode::FAILURE;
25 }
26 ExitCode::SUCCESS
27}
28
29fn paths() -> Option<(PathBuf, PathBuf)> {
30 let mut args = std::env::args_os().skip(1);
31 let input = PathBuf::from(args.next()?);
32 let output = PathBuf::from(args.next()?);
33 if args.next().is_some() {
34 return None;
35 }
36 Some((input, output))
37}