Automate version bumping because I keep forgetting doxygen.conf
This commit is contained in:
parent
e56871f5ef
commit
7f5a36cb62
1 changed files with 67 additions and 0 deletions
67
Automation/bump_version.py
Executable file
67
Automation/bump_version.py
Executable file
|
@ -0,0 +1,67 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import argparse
|
||||
import re
|
||||
# this assumes a mostly semver-complient version number
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Increment GamecraftModdingAPI version")
|
||||
parser.add_argument('version', metavar="VN", type=str, help="The version number to increment, or the index of the number (zero-indexed).")
|
||||
args = parser.parse_args()
|
||||
|
||||
version_index = -1
|
||||
try:
|
||||
version_index = int(args.version)
|
||||
except Exception:
|
||||
if args.version.lower() == "major":
|
||||
version_index = 0
|
||||
elif args.version.lower() == "minor":
|
||||
version_index = 1
|
||||
elif args.version.lower() == "patch":
|
||||
version_index = 2
|
||||
|
||||
if version_index < 0:
|
||||
print("Could not parse version argument.")
|
||||
exit(version_index)
|
||||
|
||||
print(version_index)
|
||||
old_version = ""
|
||||
new_version = ""
|
||||
|
||||
with open("../GamecraftModdingAPI/GamecraftModdingAPI.csproj", "r") as xmlFile:
|
||||
print("Parsing GamecraftModdingAPI.csproj")
|
||||
fileStr = xmlFile.read()
|
||||
versionMatch = re.search(r"<Version>(.+)</Version>", fileStr)
|
||||
if versionMatch is None:
|
||||
print("Unable to find version number in GamecraftModdingAPI.csproj")
|
||||
exit(1)
|
||||
old_version = versionMatch.group(1)
|
||||
versionList = old_version.split(".")
|
||||
if len(versionList) <= version_index:
|
||||
print("Invalid version string")
|
||||
exit(1)
|
||||
versionList[version_index] = str(int(versionList[version_index]) + 1)
|
||||
for i in range(version_index + 1, len(versionList)):
|
||||
try:
|
||||
int(versionList[i])
|
||||
versionList[i] = "0"
|
||||
except Exception:
|
||||
tmp = versionList[i].split("-")
|
||||
tmp[0] = "0"
|
||||
versionList[i] = "-".join(tmp)
|
||||
new_version = ".".join(versionList)
|
||||
print(new_version)
|
||||
newFileContents = fileStr.replace("<Version>"+old_version+"</Version>", "<Version>"+new_version+"</Version>")
|
||||
|
||||
with open("../GamecraftModdingAPI/GamecraftModdingAPI.csproj", "w") as xmlFile:
|
||||
print("Writing new version to project file")
|
||||
xmlFile.write(newFileContents)
|
||||
|
||||
with open("../doxygen.conf", "r") as doxFile:
|
||||
print("Parsing doxygen.conf")
|
||||
doxStr = doxFile.read()
|
||||
newFileContents = doxStr.replace("= \"v" + old_version + "\"", "= \"v" + new_version + "\"")
|
||||
|
||||
with open("../doxygen.conf", "w") as doxFile:
|
||||
print("Writing new version to doxygen config")
|
||||
doxFile.write(newFileContents)
|
Loading…
Reference in a new issue