Source code

Revision control

Copy as Markdown

Other Tools

# mypy: allow-untyped-defs
# mypy: allow-untyped-calls
import sys
import os
import urllib
import zipfile
START = "start"
DOWNLOAD_REFERENCE_BROWSERS = "download-reference-results"
REFERENCE_BROWSERS = {
"chrome": {
"name": "Chromium 73.0.3640.0",
/wave-reference-browser-results/WMAS+2018\
/Chromium73-a50c6db0-6a94-11e9-8d1b-e23fc4555885.zip",
},
"edge": {
"name": "Edge 44.17763",
/wave-reference-browser-results/WMAS+2018\
/Edge44-b2924d20-6a93-11e9-98b4-a11fb92a6d1c.zip",
},
"firefox": {
"name": "Firefox 64.0",
/wave-reference-browser-results/WMAS+2018\
/Firefox64-bb7aafa0-6a92-11e9-8ec2-04f58dad2e4f.zip",
},
"webkit": {
"name": "WebKit r239158",
/wave-reference-browser-results/WMAS+2018\
/WebKitr239158-caf823e0-6a92-11e9-b732-3188d0065ebc.zip",
},
}
def main():
parameters = get_run_parameters()
# configuration_file_path = None
# if ("configuration_file_path" in parameters):
# configuration_file_path = parameters["configuration_file_path"]
if parameters["operation"] == DOWNLOAD_REFERENCE_BROWSERS:
download_reference_browsers()
def get_run_parameters():
arguments = sys.argv
parameters = {}
operation = arguments[1].lower()
if operation != START and operation != DOWNLOAD_REFERENCE_BROWSERS:
raise Exception(f"Unknown operation {operation}")
parameters["operation"] = operation
iterator = iter(arguments)
next(iterator)
next(iterator)
for argument in iterator:
if argument.lower() == "--config":
path = next(iterator)
if not path.startswith("/"):
path = os.path.join(os.getcwd(), path)
parameters["configuration_file_path"] = path
continue
raise Exception(f"Unknown option {argument}")
if "configuration_file_path" not in parameters:
configuration_file_path = os.path.join(os.getcwd(), "config.json")
parameters["configuration_file_path"] = configuration_file_path
return parameters
def download_file(url, file_path):
response = urllib.request.urlopen(url)
data = response.read()
file = open(file_path, "wb")
file.write(data)
file.close()
def printt(text):
sys.stdout.write(text)
sys.stdout.flush()
def download_reference_browsers():
result_directory = os.path.abspath("./results")
if not os.path.isdir(result_directory):
os.mkdir(result_directory)
for id in REFERENCE_BROWSERS:
browser = REFERENCE_BROWSERS[id]
browser["zip"] = browser["url"].split("/")[-1]
printt(f"Downloading {browser['name']} results ...")
dest_path = os.path.join(result_directory, browser["zip"])
download_file(browser["url"], dest_path)
print(" done.")
for id in REFERENCE_BROWSERS:
browser = REFERENCE_BROWSERS[id]
printt(f"Extracting {browser['name']} results ...")
dest_path = os.path.join(result_directory, browser["name"])
zip_file = zipfile.ZipFile(dest_path)
zip_file.extractall(result_directory)
print(" done.")
print("Cleaning ...")
for id in REFERENCE_BROWSERS:
browser = REFERENCE_BROWSERS[id]
os.remove(os.path.join(result_directory, browser["zip"]))
main()