#! /usr/bin/env python3

import re
import subprocess
import sys

version_tag_re = re.compile(r"v\d+\.\d+\.\d+")


tags = (
    subprocess.run(["git", "tag", "--contains", "HEAD"], capture_output=True)
    .stdout.decode()
    .strip()
    .split()
)

# If one of the tags is a version tag, then run the commands specified in the
# parameters.
for tag in tags:
    if match := version_tag_re.match(tag):
        print(f"VERSION TAG {tag} FOUND")

        # Execute the associated commands, raising an exception if the command
        # returns a non-zero value.
        for arg in sys.argv[1:]:
            print(f"+ {' '.join(arg.split())}")
            subprocess.run(arg.split()).check_returncode()

        # Don't run the else statement of the for loop.
        break
else:
    print("No version tag found for this commit. Skipping")
