summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644
index 0000000..18b3476
--- /dev/null
+++ b/src/lib.rs
@@ -0,0 +1,31 @@
+extern crate git2;
+
+use std::env;
+use std::io::{stdin, BufRead};
+
+use git2::Repository;
+
+
+pub fn log() {
+ let name_arg = env::args().nth(0).unwrap_or(String::from("unknown"));
+ let args: Vec<_> = env::args().skip(1).collect();
+ println!("{} called with {:?}", name_arg, args);
+
+ println!("BEGIN STDIN");
+ let stdin = stdin();
+ for line in stdin.lock().lines() {
+ println!("{:?}", line);
+ }
+ println!("END STDIN");
+}
+
+pub fn get_current_branch() -> Result<String, git2::Error> {
+ let git_repo = Repository::discover("./")?;
+ let head = git_repo.head()?;
+ let head_name = head.shorthand();
+ match head_name {
+ Some(name) => Ok(name.to_string()),
+ None => Err(git2::Error::from_str("No branch name found"))
+ }
+}
+