#!/usr/bin/env bash

COLOR_GIT_CLEAN='\001\033[38;5;107m\002'
COLOR_GIT_MODIFIED='\001\033[38;5;180m\002'
COLOR_GIT_STAGED='\001\033[38;5;223m\002'
COLOR_RESET='\001\033[0m\002'

function git_prompt() {
  if git rev-parse --is-inside-work-tree &>/dev/null; then
    local branch_name
    branch_name=$(git symbolic-ref --short HEAD 2>/dev/null || git rev-parse --short HEAD 2>/dev/null)
    if git diff --quiet --ignore-submodules HEAD 2>/dev/null; then
      echo -ne " ${COLOR_GIT_CLEAN}${branch_name}${COLOR_RESET}"
    elif ! git diff --cached --quiet --ignore-submodules HEAD 2>/dev/null; then
      echo -ne " ${COLOR_GIT_STAGED}${branch_name}${COLOR_RESET}"
    else
      echo -ne " ${COLOR_GIT_MODIFIED}${branch_name}*${COLOR_RESET}"
    fi
  fi
}
