continuous-testing 0.0.1

A continue testing library
use std::env::args;
use std::process::{exit, ExitCode};
use continuous::testing::Again;


fn check(x: &Option<String>)
{
    if x.is_none() {
        println!("{}", "again <directory> <os> <memory_size> <cpus> <commands>");
        exit(1);
    }
}

fn main() -> ExitCode {
    let directory_binding = args().nth(1);

    check(&directory_binding);
    let directory = match directory_binding {
        Some(ref v) => v,
        None => exit(1),
    };

    let os_binding = args().nth(2);

    check(&os_binding);
    let os = match os_binding {
        Some(ref v) => v,
        None => exit(1),
    };

    let memory_binding = args().nth(3);

    check(&memory_binding);

    let memory = match memory_binding {
        Some(ref v) => v,
        None => exit(1),
    };

    let cpus_binding = args().nth(4);
    check(&cpus_binding);
    let cpus = match cpus_binding {
        Some(ref v) => v,
        None => exit(1),
    };

    let command_binding = args().nth(5);
    check(&command_binding);
    let command = match command_binding {
        Some(ref v) => v,
        None => exit(1),
    };


    Again::on(directory.as_str(), os.as_str(), memory.as_str(), cpus.as_str(), command.as_str()).expect("Failed to run machine");
    exit(0)
}