__git_dirty() {
  if [ "$(git status 2> /dev/null | tail -1)" != "nothing to commit, working tree clean" ]; then
    echo "*"
  fi
}
__git_branch() {
branch=$(git branch 2>/dev/null | grep "*" | sed -e 's/\*\ //') || return
  if [ "$branch" == *"detached"* ]; then
    branch=$(echo "$branch" | sed -e 's/.*at\ //' | sed -e 's/)//')
  fi
  echo "$branch"
}
__git_prompt() {
  branch=$(__git_branch)
  if [ ! -z "$branch" ]; then
    echo "$branch$(__git_dirty)"
  else
    echo "NONE"
  fi
}
__git_history() {
  echo "$(git log --oneline | cut -d ' ' -f 1)"
}