#!/usr/bin/env bash

# abort if we get any error
set -e

_tag=$1
_branch="$(git rev-parse --abbrev-ref HEAD)"

if [ "${_tag}" == "" ]; then
    echo "Missing version param. ex './scripts/tag_release.sh v5.1.1'"
    exit 1
fi

if [ "${_branch}" == "main" ]; then
    echo "you cannot tag releases from the main branch"
    echo "please checkout the release branch"
    echo "ex 'git checkout v5.1.x'"
    exit 1
fi

# always make sure to pull latest changes from origin
echo "pulling latest changes from ${_branch}"
git pull origin "${_branch}"

# create signed tag for latest commit
git tag -s "${_tag}" -m "release ${_tag}"

# verify the signed tag
git tag -v "${_tag}"

echo "Make sure the tag is signed as expected"
echo "press [y] to push the tags"

read -n 1 confirm

if [ "${confirm}" == "y" ]; then
    git push origin "${_tag}"
else
    git tag -d "${_tag}"
    echo "Abort! "
fi
