diff options
author | Teddy Wing | 2022-06-02 23:22:39 +0200 |
---|---|---|
committer | Teddy Wing | 2022-06-02 23:22:39 +0200 |
commit | 0951bb614aa1602983dacbf604c5a52e44d49bc3 (patch) | |
tree | 220783e35ed0258ff7684055b823820b098960de /src/git.rs | |
parent | 079ca8b33657da216a8d08a9fae0fd54e488ec71 (diff) | |
download | reflectub-0951bb614aa1602983dacbf604c5a52e44d49bc3.tar.bz2 |
git.rs: Ideas for error structure and context
Diffstat (limited to 'src/git.rs')
-rw-r--r-- | src/git.rs | 23 |
1 files changed, 20 insertions, 3 deletions
@@ -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"; |