summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/branch/README.md33
-rw-r--r--plugins/branch/branch.plugin.zsh26
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
+}