#!/bin/bash
# SPDX-FileCopyrightText: Copyright (c) 2025 Yegor Bugayenko
# SPDX-License-Identifier: MIT

set -e -o pipefail

if [ -n "${GITTED_TESTING}" ]; then
    set -x
fi

if [ -n "${GITTED_VERBOSE}" ]; then
    set -x
fi

if ! git rev-parse --git-dir > /dev/null 2>&1; then
    echo "Oops, this is not a Git repository"
    exit 1
fi

base=$(dirname "$0")

if [ -z "${GIT_BIN}" ]; then
    GIT_BIN=git
fi

"${base}/commit" "$*"

branch=$(git symbolic-ref HEAD --short)

while true; do
    "${GIT_BIN}" push origin "${branch}" && break
    if [ -n "${GITTED_TESTING}" ]; then
        exit 1
    fi
done
