git-gamble 2.12.1

blend TDD + TCR to make sure to develop the right thing 😌, baby step by baby step πŸ‘ΆπŸ¦Ά
Documentation
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(),
				))
			})
	})
}