| # 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() |