From 62e43f68e84d3ea0706cc1388a9c9968d1a75ea8 Mon Sep 17 00:00:00 2001 From: Grant McSheffrey Date: Sun, 30 Oct 2022 21:40:34 -0400 Subject: [PATCH] Add tool to find the version listed in a pom file --- tools/find-pom-version.py | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tools/find-pom-version.py diff --git a/tools/find-pom-version.py b/tools/find-pom-version.py new file mode 100644 index 0000000..5390cab --- /dev/null +++ b/tools/find-pom-version.py @@ -0,0 +1,57 @@ +import sys + +def print_usage(): + print("Usage:") + print("This script looks for the version of a project within a POM file") + print("\n find-pom-version.py ") + +def find_version(line): + versionIndex = line.find("") + if versionIndex >= 0: + endIndex = line.find("") + return line[versionIndex+9:endIndex] if endIndex else line[versionIndex+9:] + return None + +if len(sys.argv) != 2: + print("\nERROR! Incorrect number of arguments provided (" + str(len(sys.argv)) + "), expected 1\n") + print_usage() + exit(1) + +lines = [] + +with open(sys.argv[1], 'r') as pomFile: + lines = pomFile.readlines() + +parentVersion = None +inProject = False +inParent = False +topLevelElement = None +for line in lines: + if inProject: + if topLevelElement != None: + if inParent and parentVersion == None: + parentVersion = find_version(line) + if line.find("") >= 0: + topLevelElement = None + if inParent: + inParent = False + else: + version = find_version(line) + if version != None: + print(version) + exit() + + tagIndex = line.find("<") + if tagIndex >= 0: + endTagIndex = line.find(">") + topLevelElement = line[tagIndex+1:endTagIndex] + if line.find("") >= 0: + topLevelElement = None + elif topLevelElement == "parent": + inParent = True + else: + projectIndex = line.find("= 0: + inProject = True + +print(parentVersion) \ No newline at end of file