28 lines
602 B
Rust
28 lines
602 B
Rust
mod cli;
|
|
mod log;
|
|
mod render;
|
|
mod spec;
|
|
mod tmpl;
|
|
|
|
use log::LogLevel;
|
|
use render::RenderedConfig;
|
|
|
|
fn main() {
|
|
let args: cli::Args = cli::parse_args();
|
|
let dbg: LogLevel = args.loglevel;
|
|
|
|
dbug!(dbg, "{:#?}", &args);
|
|
|
|
let specifications: Vec<spec::Specification> =
|
|
spec::compile(&args.devices, &args.env.spec_path, dbg);
|
|
|
|
for spec in specifications {
|
|
RenderedConfig::from_spec(&spec, dbg)
|
|
.unwrap_or_else(|e| {
|
|
eprintln!("{}", e);
|
|
std::process::exit(1);
|
|
})
|
|
.output(&args.env.out_path, dbg);
|
|
}
|
|
}
|