# giro giro (from **gi**t-**ro**ot) is a [crate](https://crates.io/crates/giro) to for resolving the Git repository root directory, if any, of a path. So essentially, it enables you to find out two things: - Does a path belong to a Git repository? - If so, what is the root directory of this Git repository? This crate only exposes one public function: 'git_root' ```rust pub fn git_root>(path: P) -> Result, std::io::Error> ``` Having this isolated functionality in a create means that other applications or crates may be able to use this crate over for example git2 or similar crates when they are only used for this functionality. ## Usage ### Library (crate) Run ```sh cargo add giro ``` or add ```toml giro = "0.1" ``` to your projects Cargo.toml. Then call it with ```rust let root: Option = giro::git_root("some/path")?; ``` ### Application (binary) This will install giro as a git plugin. The binary will be installed as `git-root`. ```sh cargo install giro ``` then run ```sh git root ``` to check if the current directory is inside a git repository or not. #### Man Pages If you want man pages for the git-root binary, it can be added by copying the file `git-root.1.man` to a directory in your [`$MANPATH`](https://www.howtoforge.com/linux-manpath-command).