diff options
Diffstat (limited to 'plugins/branch')
| -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..56ab8da4b --- /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 zsh /tmp/branch_prompt_info_test.zsh +0.00s user 0.01s system 78% cpu 0.014 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..a1e9ca31b --- /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 +  local current_dir=$PWD +  # While current path is not root path +  while [[ $current_dir != '/' ]] +  do +    # Git repository +    if [[ -d "${current_dir}/.git" ]] +    then +      echo '±' ${"$(<"$current_dir/.git/HEAD")"##*/} +      return; +    fi +    # Mercurial repository +    if [[ -d "${current_dir}/.hg" ]] +    then +      echo '☿' $(<"$current_dir/.hg/branch") +      return; +    fi +    # Defines path as parent directory and keeps looking for :) +    current_dir="${current_dir:h}" +  done +}  | 
