From 29b8c59c9e45f6a45f59268afe55f5c8be7fa7e9 Mon Sep 17 00:00:00 2001 From: Michael Chen Date: Wed, 23 Nov 2022 00:35:14 +0100 Subject: [PATCH] Automatically get version number from project file --- build.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/build.py b/build.py index 0f13d29..4ed8abe 100644 --- a/build.py +++ b/build.py @@ -2,11 +2,12 @@ import subprocess import argparse from itertools import chain +import re dockercmd = 'docker' parser = argparse.ArgumentParser(description='Create custom recumock images.') -parser.add_argument('tags', metavar='TAG', nargs='+', help='Version tags to build.') +parser.add_argument('tags', metavar='TAG', nargs='*', help='Version tags to build.') args = parser.parse_args() @@ -25,6 +26,19 @@ def build(images, directory, platforms, build_args = None): print(' '.join(command)) subprocess.run(command, check=True) +def version_from_project(): + with open(r'MinecraftDiscordBot\MinecraftDiscordBot.csproj', 'r') as f: + project = f.read() + + regex = r"\s*([^<]*?)\s*<\/Version>" + matches = re.search(regex, project, re.IGNORECASE) + if not matches: + raise Exception("Could not read version from project file!") + return matches.group(1) + +if len(args.tags) == 0: + args.tags.append(version_from_project()) + for version in args.tags: parts = version.split('.') tags = list('.'.join(parts[:i]) for i in range(1, len(parts) + 1))