#
# Gitster theme
# https://github.com/shashankmehta/dotfiles/blob/master/thesetup/zsh/.oh-my-zsh/custom/themes/gitster.zsh-theme
#

gst_get_status() {
  print "%(?:%F{10}➜ :%F{9}➜ %s)"
}

gst_get_pwd() {
  git_root=${PWD}
  while [[ ${git_root} != / && ! -e ${git_root}/.git ]]; do
    git_root=${git_root:h}
  done
  if [[ ${git_root} = / ]]; then
    unset git_root
    prompt_short_dir="$(short_pwd)"
  else
    parent=${git_root%\/*}
    prompt_short_dir=${"$(short_pwd)"#${parent}/}
  fi
  print ${prompt_short_dir}
}

prompt_gitster_precmd() {
  PROMPT='$(gst_get_status) %F{white}$(gst_get_pwd) $(git_prompt_info)%f '
}

prompt_gitster_setup() {
  ZSH_THEME_GIT_PROMPT_PREFIX="%F{cyan}"
  ZSH_THEME_GIT_PROMPT_SUFFIX="%f"
  ZSH_THEME_GIT_PROMPT_DIRTY=" %F{yellow}✗%f"
  ZSH_THEME_GIT_PROMPT_CLEAN=" %F{green}✓%f"

  autoload -Uz add-zsh-hook

  add-zsh-hook precmd prompt_gitster_precmd
  prompt_opts=(cr subst percent)
}

prompt_gitster_setup "$@"