grass-driver 0.1.4

Driver for GRASS
Documentation
use std::{fs::File, process::exit};

use grass_driver::JobDefinition;

fn print_usage() -> ! {
    eprintln!("grass-driver exec <job-file>");
    eprintln!("grass-driver expand <job-file>");
    exit(1);
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
    env_logger::init();

    let args: Vec<_> = std::env::args().skip(1).collect();

    if args.len() != 2 {
        print_usage();
    } else {
        let mut job: JobDefinition = serde_json::from_reader(File::open(&args[1])?)?;
        match args[0].as_str() {
            "exec" => {
                grass_driver::execute_job(&mut job)?;
            }
            "expand" => {
                job.print_expanded_code()?;
            }
            _ => {
                drop(job);
                print_usage();
            }
        }
    }
    Ok(())
}