summaryrefslogtreecommitdiff
path: root/src/bin/git-undo-restore-autosave.rs
blob: c3d00df8c5c30c8322d4876d85c93fd44b72b878 (plain)
use git2::{Repository, build::CheckoutBuilder};

fn main() -> Result<(), anyhow::Error> {
	let force = std::env::args().any(|arg| arg == "--force");

	let repository = Repository::discover(".")?;
	let tree = git_autosave::load_undo_tree(&repository)?;

	let mut options = CheckoutBuilder::new();
	if force {
		options.force();
	}
	repository.checkout_tree(tree.as_object(), Some(&mut options))?;

	Ok(())
}