aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/git.rs10
-rw-r--r--src/main.rs4
2 files changed, 12 insertions, 2 deletions
diff --git a/src/git.rs b/src/git.rs
index 017aae3..d83d2b6 100644
--- a/src/git.rs
+++ b/src/git.rs
@@ -11,8 +11,16 @@ use std::path::Path;
pub fn mirror<P: AsRef<Path>>(
url: &str,
path: P,
+ description: Option<&str>,
) -> Result<(), Box<dyn std::error::Error>> {
- let repo = git2::Repository::init_bare(path)?;
+ let mut repo_init_options = git2::RepositoryInitOptions::new();
+ repo_init_options.bare(true);
+
+ if let Some(d) = description {
+ repo_init_options.description(d);
+ }
+
+ let repo = git2::Repository::init_opts(path, &repo_init_options)?;
let remote_name = "origin";
diff --git a/src/main.rs b/src/main.rs
index 478ffab..89473ea 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -74,6 +74,7 @@ async fn main() {
mirror(
&repo.git_url,
&clone_path,
+ repo.description.as_deref(),
).unwrap();
db.repo_insert(db_repo).await.unwrap();
@@ -88,12 +89,13 @@ async fn main() {
fn mirror<P: AsRef<Path>>(
url: &str,
clone_path: P,
+ description: Option<&str>,
) -> Result<(), Box<dyn std::error::Error>> {
// mirror database
// update description
// copy cgitrc
- git::mirror(url, clone_path)?;
+ git::mirror(url, clone_path, description)?;
Ok(())
}