guarding 0.2.6

Guarding is a guardians for code, architecture, layered. Guarding crate a architecture aguard DSL which based on ArchUnit.
Documentation
use std::fs;
use std::path::PathBuf;

use clap::{AppSettings, Clap};
use guarding::exec_guarding;

#[derive(Clap)]
#[clap(version = "1.0", author = "Inherd Group <group@inherd.org>")]
#[clap(setting = AppSettings::ColoredHelp)]
struct Opts {
    #[clap(short, long, default_value = "guarding.guarding")]
    config: String,

    #[clap(short, long, default_value = "src")]
    path: String,

    #[clap(short, long, default_value = "guard.json")]
    output: String,
}

fn main() {
    let opts: Opts = Opts::parse();

    let buf = PathBuf::from(opts.path);
    let conf = PathBuf::from(opts.config);
    let content = fs::read_to_string(conf).unwrap();

    let errors = exec_guarding(content, buf);
    let content = serde_json::to_string_pretty(&errors).unwrap();
    let _ = fs::write(opts.output, content);
}