#!/bin/sh

set -e

find_git_command() {
  for arg in "$@"; do
    case $arg in
    -*);;
    *)
      echo $arg
      return  # found the command!
    esac
  done
}

libexec="$(cd "$(dirname "$0")/.." && pwd)"/libexec

# extract the git subcommand
cmd=$(find_git_command "$@")

if [ -z "$cmd" ]; then
  exec "$libexec/git" "$@"
elif [ -x "$libexec/git-$_CMD" -a -f "$libexec/git-$cmd" ]; then
  exec "$libexec/git" "$@"
elif type "git-$cmd" >/dev/null 2>&1; then
  exec "$libexec/git" "$@"
elif command -v pkgx >/dev/null 2>&1 && pkg=$(pkgx --provider git-$cmd); then
  exec pkgx +$pkg "$libexec/git" "$@"
else
  exec "$libexec/git" "$@"
fi
