continuous-testing 0.1.1

A continue testing library
Documentation
use continuous::continuous::Encore;
use serde::{Deserialize, Serialize};
use std::process::{exit, ExitCode};

const CONFIG: &str = "./specs/continuous.yml";

#[derive(Debug, Serialize, Deserialize)]
struct Config {
    directory: String,
    os: String,
    memory: i32,
    cpus: i32,
    install: Vec<String>,
    script: Vec<String>,
    before_script: Vec<String>,
    after_script: Vec<String>,
    before_install: Vec<String>,
    after_install: Vec<String>,
    after_failure: Vec<String>,
    after_success: Vec<String>,
    channels: Vec<String>,
    badges_output: String,
}

fn main() -> ExitCode {
    let f = std::fs::File::open(CONFIG).expect("Could not open file.");

    let c: Config = serde_yaml::from_reader(f).expect("Could not read values.");

    let mut e = Encore::new(c.channels);

    e.set_directory(c.directory);
    e.set_os(c.os);
    e.set_badges_output(c.badges_output);
    e.set_memory(c.memory);
    e.set_cpus(c.cpus);
    e.set_script(c.script);
    e.set_install(c.install);
    e.set_before_script(c.before_script);
    e.set_after_script(c.after_script);
    e.set_before_install(c.before_install);
    e.set_after_install(c.after_install);
    e.set_after_failure(c.after_failure);
    e.set_after_success(c.after_success);

    if e.run().is_ok() {
        exit(0);
    }
    exit(1);
}