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);
}