Add branch plugin

This commit is contained in:
Victor Torres 2015-10-02 23:16:56 -03:00
parent a9c882094d
commit d49cacfb7b
2 changed files with 59 additions and 0 deletions

33
plugins/branch/README.md Normal file
View file

@ -0,0 +1,33 @@
# Branch
Displays the current Git or Mercurial branch fast.
## Speed test
### Mercurial
```shell
$ time hg branch
0.11s user 0.14s system 70% cpu 0.355 total
```
### Branch plugin
```shell
$ time sh /tmp/branch_prompt_info.sh
0.01s user 0.01s system 81% cpu 0.018 total
```
## Usage
Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`)
adding `$(branch_prompt_info)` in your prompt like this:
```diff
- PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
+ PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(branch_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
```
## Maintainer
Victor Torres (<vpaivatorres@gmail.com>)

View file

@ -0,0 +1,26 @@
# Branch: displays the current Git or Mercurial branch fast.
# Victor Torres <vpaivatorres@gmail.com>
# Oct 2, 2015
function branch_prompt_info() {
# Defines path as current directory
path=$(pwd)
# While current path is not root path
while [ $path != '/' ];
do
# Git repository
if [ -d ${path}/.git ];
then
echo '±' $(/bin/cat ${path}/.git/HEAD | /usr/bin/cut -d / -f 3-)
return;
fi
# Mercurial repository
if [ -d ${path}/.hg ];
then
echo '☿' $(/bin/cat ${path}/.hg/branch)
return;
fi
# Defines path as parent directory and keeps looking for :)
path=$(/usr/bin/dirname $path)
done
}