codegen/
codegen.rs

1fn print_usage_and_exit() -> ! {
2    eprintln!("Usage: codegen --template <template.liquid> --write-to <outfile>");
3    std::process::exit(1);
4}
5
6fn try_arg(key: &str) -> Option<String> {
7    let idx = std::env::args().position(|e| e == key)?;
8    let value = std::env::args().nth(idx + 1)?;
9    Some(value)
10}
11
12fn get_arg(key: &str) -> String {
13    try_arg(key).unwrap_or_else(|| {
14        eprintln!("No {} CLI option given", key);
15        print_usage_and_exit()
16    })
17}
18
19fn main() {
20    let template_path = get_arg("--template");
21    let output_path = get_arg("--write-to");
22
23    let rendered = lib_ruby_parser_nodes::LiquidTemplate::new(template_path).render();
24    std::fs::write(output_path, rendered).unwrap();
25}