vis/src/main.rs
2025-01-22 18:09:15 +01:00

29 lines
883 B
Rust

use anyhow::anyhow;
use std::env::args;
use std::fs;
use std::fs::File;
use std::io::Write;
use std::process::exit;
use vis::render::svg_renderer::SvgRender;
use vis::render::Renderer;
fn main() -> anyhow::Result<()> {
let args: Vec<String> = args().collect();
if args.len() != 2 {
eprintln!("Usage: vis vis-file");
exit(-64);
} else {
let vis_file = read_file(&args[1])?;
let vis = vis::parse::parse_vis(vis_file.as_str())?;
// println!("{:?}", vis);
let svg_bytes = SvgRender {}.render(vis)?;
let mut file = File::create("bank.svg").expect("Unable to create file");
file.write_all(&svg_bytes).expect("Unable to write data");
}
Ok(())
}
fn read_file(file_name: &str) -> anyhow::Result<String> {
fs::read_to_string(file_name).map_err(|e| anyhow!("Cannot read file '{}': {}", file_name, e))
}