diff options
author | Victor Torres <vpaivatorres@gmail.com> | 2015-10-02 23:16:56 -0300 |
---|---|---|
committer | Victor Torres <vpaivatorres@gmail.com> | 2015-10-02 23:16:56 -0300 |
commit | d49cacfb7bb96049185c2edfaf3c330b0bde338e (patch) | |
tree | 48e149d31a2748802c1f3f4580ad7e0638fa13ba | |
parent | a9c882094dedfdefb311db5967b974980cec49ec (diff) | |
download | zsh-d49cacfb7bb96049185c2edfaf3c330b0bde338e.tar.gz zsh-d49cacfb7bb96049185c2edfaf3c330b0bde338e.tar.bz2 zsh-d49cacfb7bb96049185c2edfaf3c330b0bde338e.zip |
Add branch plugin
-rw-r--r-- | plugins/branch/README.md | 33 | ||||
-rw-r--r-- | plugins/branch/branch.plugin.zsh | 26 |
2 files changed, 59 insertions, 0 deletions
diff --git a/plugins/branch/README.md b/plugins/branch/README.md new file mode 100644 index 000000000..f970266a8 --- /dev/null +++ b/plugins/branch/README.md @@ -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>) diff --git a/plugins/branch/branch.plugin.zsh b/plugins/branch/branch.plugin.zsh new file mode 100644 index 000000000..c918ea2b5 --- /dev/null +++ b/plugins/branch/branch.plugin.zsh @@ -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 +} |