use crate::message::Message;
use super::cli::Cli;
use super::gamble_result::GambleResult;
use super::repository::Repository;
pub(crate) fn revert(opt: &Cli, repository: &Repository) -> GambleResult {
log::info!("revert");
repository.command(&["reset", "--hard"]).and_then(|()| {
log::info!("reverted");
Message::Error("Reverted!".to_string()).display();
repository
.run_hook(
"post-gamble",
&[
if opt.pass { "pass" } else { "fail" },
if opt.pass { "fail" } else { "pass" },
],
)
.map_err(|error| {
error.add_message(Message::Warn(
"It has been reverted but the post-gamble hook failed to execute".to_string(),
))
})
})
}