Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
seleniumhq
GitHub Repository: seleniumhq/selenium
Path: blob/trunk/scripts/selenium_manager.py
2864 views
1
#!/usr/bin/env python
2
3
import json
4
import os
5
from pathlib import Path
6
7
import urllib3
8
9
# Get latest version of selenium manager with sha256 values
10
# updates `//common:selenium_manager.bzl`
11
12
http = urllib3.PoolManager()
13
14
15
def get_url():
16
r = http.request(
17
"GET",
18
"https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/latest",
19
)
20
return r.url.replace("tag", "download")
21
22
23
def get_sha_json():
24
r = http.request(
25
"GET",
26
"https://raw.githubusercontent.com/SeleniumHQ/selenium_manager_artifacts/trunk/latest.json",
27
)
28
return json.loads(r.data)
29
30
31
def print_linux(base_url, sha):
32
return """ http_file(
33
name = "download_sm_linux",
34
executable = True,
35
sha256 = "%s",
36
url = "%s",
37
)
38
39
""" % (sha, base_url + "/selenium-manager-linux")
40
41
42
def print_macos(base_url, sha):
43
return """ http_file(
44
name = "download_sm_macos",
45
executable = True,
46
sha256 = "%s",
47
url = "%s",
48
)
49
50
""" % (sha, base_url + "/selenium-manager-macos")
51
52
53
def print_windows(base_url, sha):
54
return """ http_file(
55
name = "download_sm_windows",
56
executable = True,
57
sha256 = "%s",
58
url = "%s",
59
)
60
""" % (sha, base_url + "/selenium-manager-windows.exe")
61
62
63
if __name__ == "__main__":
64
content = """# This file has been generated using `bazel run scripts:selenium_manager`
65
66
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
67
68
def selenium_manager():
69
"""
70
base_url = get_url()
71
sha_dict = get_sha_json()
72
content = content + print_linux(base_url, sha_dict["linux"])
73
content = content + print_macos(base_url, sha_dict["macos"])
74
content = content + print_windows(base_url, sha_dict["windows"])
75
content += """
76
def _selenium_manager_artifacts_impl(_ctx):
77
selenium_manager()
78
79
selenium_manager_artifacts = module_extension(
80
implementation = _selenium_manager_artifacts_impl,
81
)
82
"""
83
84
current_script_dir = Path(os.path.realpath(__file__)).parent
85
target_file_path = current_script_dir.parent / "common/selenium_manager.bzl"
86
87
with open(target_file_path, "w") as file:
88
file.write(content)
89
90