diff options
-rw-r--r-- | src/git.rs | 22 | ||||
-rw-r--r-- | src/main.rs | 8 |
2 files changed, 28 insertions, 2 deletions
@@ -26,3 +26,25 @@ pub fn mirror<P: AsRef<Path>>( Ok(()) } + +pub fn update<P: AsRef<Path>>( + path: P, +) -> Result<(), Box<dyn std::error::Error>> { + let repo = git2::Repository::open_bare(path)?; + + for remote_opt in &repo.remotes()? { + if let Some(remote_name) = remote_opt { + let mut remote = repo.find_remote(remote_name)?; + + let mut fetch_options = git2::FetchOptions::new(); + fetch_options + .prune(git2::FetchPrune::On) + .download_tags(git2::AutotagOption::All); + + let refspecs: [&str; 0] = []; + remote.fetch(&refspecs, Some(&mut fetch_options), None)?; + } + } + + Ok(()) +} diff --git a/src/main.rs b/src/main.rs index e31da8e..70489bb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,8 +8,12 @@ fn main() { // // dbg!(&repos); - git::mirror( - "https://github.com/teddywing/google-calendar-rsvp.git", + // git::mirror( + // "https://github.com/teddywing/google-calendar-rsvp.git", + // Path::new("/tmp/grsvp"), + // ).unwrap(); + + git::update( Path::new("/tmp/grsvp"), ).unwrap(); } |