summaryrefslogtreecommitdiff
path: root/src/git.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/git.rs')
-rw-r--r--src/git.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/git.rs b/src/git.rs
new file mode 100644
index 0000000..bd26568
--- /dev/null
+++ b/src/git.rs
@@ -0,0 +1,19 @@
+use crate::ShackleError;
+
+use git2::{Repository, RepositoryInitOptions};
+use std::path::PathBuf;
+
+pub fn init(repo_name: &str) -> Result<(), ShackleError> {
+ let mut path = PathBuf::from("git");
+ path.push(repo_name);
+ path.set_extension("git");
+
+ Repository::init_opts(
+ path,
+ &RepositoryInitOptions::new()
+ .bare(true)
+ .mkdir(true)
+ .no_reinit(true),
+ )?;
+ Ok(())
+}