pub mod error_adapter;
mod args;
mod config;
pub use args::Args;
use std::fs;
use log::info;
use orrery::{DiagramBuilder, OrreryError};
pub fn run(args: &Args) -> Result<(), OrreryError> {
info!(
input_path = args.input,
output_path = args.output;
"Processing diagram"
);
let app_config = config::load_config(args.config.as_ref())?;
let source = fs::read_to_string(&args.input)?;
let builder = DiagramBuilder::new(app_config);
let diagram = builder.parse(&source)?;
let svg = builder.render_svg(&diagram)?;
fs::write(&args.output, svg)?;
info!(output_file = args.output; "SVG exported successfully");
Ok(())
}