aboutsummaryrefslogtreecommitdiffstats
path: root/src/git.rs
diff options
context:
space:
mode:
authorTeddy Wing2022-06-02 23:22:39 +0200
committerTeddy Wing2022-06-02 23:22:39 +0200
commit0951bb614aa1602983dacbf604c5a52e44d49bc3 (patch)
tree220783e35ed0258ff7684055b823820b098960de /src/git.rs
parent079ca8b33657da216a8d08a9fae0fd54e488ec71 (diff)
downloadreflectub-0951bb614aa1602983dacbf604c5a52e44d49bc3.tar.bz2
git.rs: Ideas for error structure and context
Diffstat (limited to 'src/git.rs')
-rw-r--r--src/git.rs23
1 files changed, 20 insertions, 3 deletions
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<P: AsRef<Path>>(
// Mac OS.
.external_template(false)
.description(description),
- )?;
+ )
+ .map_err(|e| Error::MirrorCreateRepo{e, path})?;
let remote_name = "origin";