29 lines
883 B
Rust
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))
|
|
}
|