# 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",
"url":
"https://s3.us-east-2.amazonaws.com/wave-browser-snapshots\
/wave-reference-browser-results/WMAS+
2018\
/Chromium73-a50c6db0-
6a94-
11e9-
8d1b-e23fc4555885.zip
",
},
"edge": {
"name":
"Edge 44.17763",
"url":
"https://s3.us-east-2.amazonaws.com/wave-browser-snapshots\
/wave-reference-browser-results/WMAS+
2018\
/Edge44-b2924d20-
6a93-
11e9-
98b4-a11fb92a6d1c.zip
",
},
"firefox": {
"name":
"Firefox 64.0",
"url":
"https://s3.us-east-2.amazonaws.com/wave-browser-snapshots\
/wave-reference-browser-results/WMAS+
2018\
/Firefox64-bb7aafa0-
6a92-
11e9-
8ec2-
04f58dad2e4f.zip
",
},
"webkit": {
"name":
"WebKit r239158",
"url":
"https://s3.us-east-2.amazonaws.com/wave-browser-snapshots\
/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()