use colored::*;
use reef::{Command, Paths};
fn main() {
let cargo_version = Command::new("cargo version").exec().unwrap();
println!("{}", cargo_version);
match Command::new("cargo bad_command")
.exec()
.unwrap()
.expect_exit_code(0)
{
Err(e) => println!("{}", e),
Ok(c) => panic!("did not expect 'cargo bad_command' to work {}", c),
}
let path = std::env::temp_dir().join("command-test");
if !path.exists() {
std::fs::create_dir_all(&path).unwrap();
}
let repo_path = &path.join("raykit.git");
if repo_path.exists() {
Paths::clobber(&repo_path).unwrap();
}
match Command::new("git clone https://gitlab.com/gems-rb/raykit.git raykit.git")
.exec_in(&path)
.unwrap()
.expect_exit_code(0)
{
Err(e) => panic!("{}", e),
Ok(c) => {
let command = c.clone();
println!("{}", command);
println!("exit code {}", command.exit_code);
println!("stdout len {}", command.stdout.len());
println!("stderr len {}", command.stderr.len());
println!("start time {}", command.start_utc());
println!("{}", "pretty debug".yellow());
println!("{:#?}", &command);
println!("{}", "debug".yellow());
println!("{:?}", &command);
println!("{}", "display".yellow());
println!("{}", &command);
println!("{}", "summary".yellow());
println!("{}", &command.summary());
println!("{}", "details".yellow());
println!("{}", &command.details());
}
};
assert!(
repo_path.exists(),
"{} does not exist",
&repo_path.display()
);
println!("cleaning up {}", &repo_path.display());
Paths::clobber(&repo_path).unwrap();
}