#!/bin/sh

script="$( readlink -f "${0}" )"
script_dir="$( dirname "${script}" )"

git rev-parse --abbrev-ref HEAD | grep -E '^develop$|^feature/' >/dev/null \
    && git_status="developing"
git rev-parse --abbrev-ref HEAD | grep -E '^release/|^hotfix/' >/dev/null \
    && git_status="releasing"
git rev-parse --abbrev-ref HEAD | grep -E '^master$' >/dev/null \
    && git_status="released"


if [ "${git_status}" = "developing" ]; then
    echo "Status: Developing"
    # => version from most recent tag
    git_version="$( \
        git describe --tags --abbrev=0 \
        | sed -E 's/^v[^0-9]*((0|[1-9][0-9]*)[0-9\.]*[0-9]).*$/\1/'
    )"
elif [ "${git_status}" = "releasing" ]; then
    echo "Status: Releasing"
    # => version from releasing branch
    git_version="$( \
        git rev-parse --abbrev-ref HEAD \
        | cut -d '/' -f 2
    )"
elif [ "${git_status}" = "released" ]; then
    echo "Status: Released"
    # => version from current tag
    git_version="$( \
        git describe --tags \
        | sed -E 's/^v[^0-9]*((0|[1-9][0-9]*)[0-9\.]*[0-9])$/\1/'
    )"
else
    echo "ERROR: Invalid git branch"
    echo "ERROR: Chores cannot be run on '$( git rev-parse --abbrev-ref HEAD )'!"
    exit 2
fi

api_version="$( \
    grep '^version' "${script_dir}/../api/pyproject.toml" \
    | sed -E 's/^version[^0-9]*((0|[1-9][0-9]*)[0-9\.]*[0-9]).*$/\1/'
)"

ui_version="$( \
    grep '"version":' "${script_dir}/../ui/package.json" \
    | sed -E 's/.*"version":[^0-9]*((0|[1-9][0-9]*)[0-9\.]*[0-9]).*$/\1/'
)"

if [ "${git_version}" = "${api_version}" ] \
&& [ "${git_version}" = "${ui_version}" ]; then
    mark="✅️"
else
    mark="❌️"
fi

echo "git: ${git_version}, api: ${api_version}, ui: ${ui_version}"
echo ">>>>> RESULT: ${mark} <<<<<"

[ "${mark}" = "✅️" ] || exit 1
