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}