diff --git a/src/bin/git-solo.rs b/src/bin/git-solo.rs index 04aa93b..f3a5428 100644 --- a/src/bin/git-solo.rs +++ b/src/bin/git-solo.rs @@ -1,9 +1,11 @@ -use std::fs::File; +use git2::Repository; use std::process; -use git2::{Config, Repository}; +use std::fs::File; +use git_mob::get_main_author; fn main() { - println!("{}", get_main_author()); + let main_author = get_main_author(); + println!("{}", main_author); match Repository::open_from_env() { Ok(repo) => { @@ -16,16 +18,6 @@ fn main() { } } -fn get_main_author() -> String { - let cfg = Config::open_default().unwrap(); - let name = cfg.get_entry("user.name").unwrap(); - let name = name.value().unwrap(); - let email = cfg.get_entry("user.email").unwrap(); - let email = email.value().unwrap(); - - format!("{} <{}>", name, email) -} - fn truncate_gitmessage_template(repo: Repository) { let template_path = repo.path().join(".gitmessage"); let _template = File::create(template_path); diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..5f14680 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,13 @@ +use std::fs::File; +use git2::{Config, Repository}; + +pub fn get_main_author() -> Author { + let cfg = Config::open_default().unwrap(); + let name = cfg.get_entry("user.name").unwrap(); + let email = cfg.get_entry("user.email").unwrap(); + + Author { + name: name.value().unwrap().to_string(), + email: email.value().unwrap().to_string(), + } +}