From 0951bb614aa1602983dacbf604c5a52e44d49bc3 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Thu, 2 Jun 2022 23:22:39 +0200 Subject: git.rs: Ideas for error structure and context --- src/git.rs | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/git.rs b/src/git.rs index 66e91fc..59a80b9 100644 --- a/src/git.rs +++ b/src/git.rs @@ -25,16 +25,32 @@ use std::path::Path; #[derive(Debug, thiserror::Error)] pub enum Error { - MirrorCreateRepo(), - MirrorConfig(), + #[error("cannot create repo '{path}'")] + MirrorCreateRepo { + #[from] + source: git2::Error, + path: String, + }, + #[error("")] MirrorAddRemote(), + #[error("")] + MirrorConfig(#[from] git2::Error), + #[error("")] + MirrorRemoteEnableMirror(), + #[error("")] MirrorFetch(), + #[error("")] UpdateOpenRepo(), + #[error("")] UpdateGetRemotes(), + #[error("")] UpdateFindRemote(), + #[error("")] UpdateFetch(), + + #[error("")] GitChangeBranch(), #[error("git error")] @@ -68,7 +84,8 @@ pub fn mirror>( // Mac OS. .external_template(false) .description(description), - )?; + ) + .map_err(|e| Error::MirrorCreateRepo{e, path})?; let remote_name = "origin"; -- cgit v1.2.3