#!/usr/bin/env bash
echo "git $*" >> "${GIT_CALLS_FILE:-/dev/null}"

[ -z "${GIT_MOCK_FAIL:-}" ] || { echo "git: mock forced failure" >&2; exit 1; }

if [ "${1:-}" = "push" ] && [ -n "${GIT_MOCK_FAIL_PUSH:-}" ]; then
  echo "git: mock push failure" >&2
  exit 1
fi

case "$1" in
  clone)
    TARGET_DIR="${@: -1}"
    mkdir -p "${TARGET_DIR}/$(dirname "$INPUT_FILE")"
    echo 'version: 0.1.0' > "${TARGET_DIR}/${INPUT_FILE}"
    echo "Cloning into '$TARGET_DIR'..."
    ;;
  add|commit|push|config|init)
    ;;
  rev-parse)
    echo "mock-sha-9876543210fedcba9876543210fedcba98765432"
    ;;
  *)
    echo "git: unknown command: $*" >&2
    exit 1
    ;;
esac
