#!/usr/bin/env bash

git version
echo "git-extras version ""$(git-extras -v)"
echo "type 'ls' to ls files below current directory, '!command' to execute any command or just 'subcommand' to execute any git subcommand"

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|exit) break;;
  esac

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

echo
