diff options
Diffstat (limited to 'src/git.rs')
-rw-r--r-- | src/git.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/git.rs b/src/git.rs new file mode 100644 index 0000000..d58da3c --- /dev/null +++ b/src/git.rs @@ -0,0 +1,32 @@ +use std::path::Path; + + +pub fn mirror() -> Result<(), Box<dyn std::error::Error>> { + // let builder = git2::build::RepoBuilder::new() + // .bare(true) + // .clone( + // "https://github.com/teddywing/google-calendar-rsvp.git", + // Path::new("/tmp/grsvp"), + // ); + + let repo = git2::Repository::init_bare(Path::new("/tmp/grsvp"))?; + + let remote_name = "origin"; + + let mut remote = repo.remote_with_fetch( + remote_name, + "https://github.com/teddywing/google-calendar-rsvp.git", + "+refs/*:refs/*", + )?; + + let mut config = repo.config()?; + config.set_bool( + &format!("remote.{}.mirror", remote_name), + true, + )?; + + let refspecs: [&str; 0] = []; + remote.fetch(&refspecs, None, None)?; + + Ok(()) +} |