From db51056cd1dd323d7d8536a7ea4076b7354fe4aa Mon Sep 17 00:00:00 2001 From: "Hatter Jiang@Pixelbook" Date: Sun, 26 Jul 2020 11:07:30 +0800 Subject: [PATCH] feat: add get_git_base_dir --- src/git.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/git.rs b/src/git.rs index e2f80f3..4d801bb 100644 --- a/src/git.rs +++ b/src/git.rs @@ -1,5 +1,24 @@ +use std::path::PathBuf; use std::process::Command; +pub fn get_git_base_path() -> Option { + match PathBuf::from(".").canonicalize() { + Err(e) => { + warn!("Get current path failed: {}", e); + None + }, + Ok(mut path) => loop { + if path.join(".git").is_dir() { + debug!("Found git base dir: {:?}", path) + return Some(path); + } + if !path.pop() { + return None; + } + } + } +} + pub fn check_git_status() -> bool { trace!("Run: git fetch --dry-run"); match Command::new("git").env("LANG", "en_US").args(&["fetch", "--dry-run"]).output() {