mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-12-27 00:39:11 +01:00
Add branch plugin
This commit is contained in:
parent
a9c882094d
commit
d49cacfb7b
33
plugins/branch/README.md
Normal file
33
plugins/branch/README.md
Normal 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>)
|
26
plugins/branch/branch.plugin.zsh
Normal file
26
plugins/branch/branch.plugin.zsh
Normal 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
|
||||
}
|
Loading…
Reference in New Issue
Block a user