(selected_version, workspace_prefix="")
| 103 | |
| 104 | |
| 105 | def chrome(selected_version, workspace_prefix=""): |
| 106 | content = "" |
| 107 | chrome_downloads = selected_version["downloads"]["chrome"] |
| 108 | |
| 109 | url = next((d["url"] for d in chrome_downloads if d["platform"] == "linux64"), None) |
| 110 | if url is None: |
| 111 | raise ValueError("No Chrome download found for platform 'linux64'") |
| 112 | sha = calculate_hash(url) |
| 113 | |
| 114 | content += f""" |
| 115 | http_archive( |
| 116 | name = "linux_{workspace_prefix}chrome", |
| 117 | url = "{url}", |
| 118 | sha256 = "{sha}", |
| 119 | build_file_content = \"\"\" |
| 120 | load("@aspect_rules_js//js:defs.bzl", "js_library") |
| 121 | package(default_visibility = ["//visibility:public"]) |
| 122 | |
| 123 | filegroup( |
| 124 | name = "files", |
| 125 | srcs = glob(["**/*"]), |
| 126 | ) |
| 127 | |
| 128 | exports_files(["chrome-linux64/chrome"]) |
| 129 | |
| 130 | js_library( |
| 131 | name = "chrome-js", |
| 132 | data = [":files"], |
| 133 | ) |
| 134 | \"\"\", |
| 135 | ) |
| 136 | """ |
| 137 | |
| 138 | url = next((d["url"] for d in chrome_downloads if d["platform"] == "mac-arm64"), None) |
| 139 | if url is None: |
| 140 | raise ValueError("No Chrome download found for platform 'mac-arm64'") |
| 141 | sha = calculate_hash(url) # Calculate SHA for Mac chrome |
| 142 | |
| 143 | content += f""" http_archive( |
| 144 | name = "mac_{workspace_prefix}chrome", |
| 145 | url = "{url}", |
| 146 | sha256 = "{sha}", |
| 147 | strip_prefix = "chrome-mac-arm64", |
| 148 | patch_cmds = [ |
| 149 | "mv 'Google Chrome for Testing.app' Chrome.app", |
| 150 | "mv 'Chrome.app/Contents/MacOS/Google Chrome for Testing' Chrome.app/Contents/MacOS/Chrome", |
| 151 | ], |
| 152 | build_file_content = \"\"\" |
| 153 | load("@aspect_rules_js//js:defs.bzl", "js_library") |
| 154 | package(default_visibility = ["//visibility:public"]) |
| 155 | |
| 156 | exports_files(["Chrome.app"]) |
| 157 | |
| 158 | js_library( |
| 159 | name = "chrome-js", |
| 160 | data = glob(["Chrome.app/**/*"]), |
| 161 | ) |
| 162 | \"\"\", |
no test coverage detected