#!/bin/bash

while true; do
  # Current branch
  cur=`git symbolic-ref HEAD 2> /dev/null | cut -d/ -f3-`

  # Prompt
  if test -n "$cur"; then
    prompt="git ($cur)> "
  else
    prompt="git> "
  fi

  # Readline
  read -e -r -p "$prompt" cmd

  # EOF
  test $? -ne 0 && break

  # History
  history -s "$cmd"

  # Built-in commands
  case $cmd in
    ls) cmd=ls-files;;
    "") continue;;
    quit) break;;
  esac

  if [[ $cmd == !*  ]]; then
    eval ${cmd:1} 
  elif [[ $cmd == git* ]]; then
    eval $cmd
  else
    eval git "$cmd"
  fi
done

echo
