#!/bin/bash -ue

echo "Release name:" "$@"

release_name=$@

# Check if the argument is a valid release name
if !([[ $release_name =~ ^v[0-9]*\.[0-9]*\.[0-9]*-?[a-z]*[0-9]*$ ]]); then
    echo "Ops! Something is wrong!
    ======== Valid names ========
    v1.0.0
    v1.2.3-beta10
    v103.034.15-beta1

    ======== Invalid names ========
    1.0.0
    v1.0
    v1.beta10"

    exit 1
fi

echo "Creating release..."

git commit -am "$release_name" || true

# Check if tag already exists locally
if git rev-parse "$release_name" >/dev/null 2>&1; then
    echo "Tag $release_name already exists locally."
else
    git tag "$release_name"
fi

# Push the tag explicitly (disambiguate from branch)
git push origin "refs/tags/$release_name"
git push

# Create GitHub release if gh is available
if command -v gh >/dev/null 2>&1; then
    gh release create "$release_name" \
        --title "$release_name" \
        --notes "Automated release $release_name"
    echo "GitHub release created successfully."
else
    echo "⚠️ GitHub CLI (gh) not installed. Only pushed tag, no release created."
fi


echo "***** DONE *****"
echo "Check the new release here:"
echo "https://github.com/utrustdev/utrust-for-woocommerce/releases"
