blob: 95746f2540f1a30596fb8bc1f739dd0545058e08 [file] [log] [blame]
# Deploy targets, update version number at website, update Javadoc
import sys
import os
import subprocess
WEBSITE_ROOT = '/Users/parrt/antlr/sites/website-antlr4'
ANTLR_M2_ROOT = '/Users/parrt/.m2/repository/org/antlr'
website_files_to_update = ['download.html',
'index.html',
'api/index.html',
'scripts/topnav.js']
def runme(cmd):
return subprocess.check_output(cmd.split(' '))
def update_file(qfname, multi, before, after):
with open(qfname, "r", encoding="UTF-8") as f:
text = f.read()
if before not in text:
print(f"{before} not in {qfname}")
return
# Don't update if on > 1 line; too complex for tool
lines = text.split('\n')
count = sum(before in line for line in lines)
if count>1 and not multi:
print(f"{before} appears on {count} lines so _not_ updating {qfname}")
# print(f"{before} => {after} in {qfname}")
text = text.replace(before, after)
with open(qfname, "w", encoding="UTF-8") as f:
f.write(text)
def copy_javadoc(release_version):
# release_version = release_version+"-SNAPSHOT" # testing
os.chdir(WEBSITE_ROOT+"/api/Java")
print("Javadoc copied:")
runme(f"jar xf {ANTLR_M2_ROOT}/antlr4-runtime/{release_version}/antlr4-runtime-{release_version}-javadoc.jar")
print(f"\tapi/Java updated from antlr4-runtime-{release_version}-javadoc.jar")
os.chdir(WEBSITE_ROOT+"/api/JavaTool")
runme(f"jar xf {ANTLR_M2_ROOT}/antlr4/{release_version}/antlr4-{release_version}-javadoc.jar")
print(f"\tapi/JavaTool updated from antlr4-{release_version}-javadoc.jar")
os.chdir(WEBSITE_ROOT+"/api/maven-plugin/latest")
runme(f"jar xf {ANTLR_M2_ROOT}/antlr4-maven-plugin/{release_version}/antlr4-maven-plugin-{release_version}-javadoc.jar")
print(f"\tapi/JavaTool updated from antlr4-maven-plugin-{release_version}-javadoc.jar")
def copy_jars(release_version):
# release_version = release_version+"-SNAPSHOT" # testing
print("Jars copied:")
runme(f"cp {ANTLR_M2_ROOT}/antlr4-runtime/{release_version}/antlr4-runtime-{release_version}.jar {WEBSITE_ROOT}/download/antlr-runtime-{release_version}.jar")
runme(f"cp {ANTLR_M2_ROOT}/antlr4/{release_version}/antlr4-{release_version}-complete.jar {WEBSITE_ROOT}/download/antlr-{release_version}-complete.jar")
os.chdir(WEBSITE_ROOT+"/download")
runme(f"git add antlr-{release_version}-complete.jar")
runme(f"git add antlr-runtime-{release_version}.jar")
print(f"\tantlr-{release_version}-complete.jar")
print(f"\tantlr-runtime-{release_version}.jar")
def update_version():
for fname in website_files_to_update:
qfname = WEBSITE_ROOT + "/" + fname
update_file(qfname, True, before, after)
print("Version string updated. Please commit/push:")
if __name__ == '__main__':
before = sys.argv[1]
after = sys.argv[2]
print(f"Updating ANTLR version from {before} to {after}")
root = input(f"Set ANTLR website root (default {WEBSITE_ROOT}): ")
if len(root.strip())>0:
WEBSITE_ROOT = root
update_version()
os.chdir(WEBSITE_ROOT)
copy_javadoc(release_version=after)
copy_jars(release_version=after)
print()
print("Please look for and add new api files!!")
print("Then MANUALLY commit/push:")
print()
print(f"cd {WEBSITE_ROOT}")
print(f"git commit -a -m 'Update website, javadoc, jars to {after}'")
print("git push origin gh-pages")