|
7 | 7 | # LICENSE file in the root directory of this source tree.
|
8 | 8 |
|
9 | 9 | import argparse
|
| 10 | +import certifi |
10 | 11 | import os
|
11 | 12 | import platform
|
| 13 | +import ssl |
12 | 14 | import stat
|
13 | 15 | import sys
|
14 | 16 | import urllib.request
|
@@ -201,27 +203,23 @@ def resolve_buck2(args: argparse.Namespace) -> Union[str, int]:
|
201 | 203 | if os.path.isfile(buck2_local_path):
|
202 | 204 | return buck2_local_path
|
203 | 205 |
|
204 |
| - buck2_archive_url = f"https://github.com/facebook/buck2/releases/download/{target_buck_version}/{buck_info.archive_name}" |
| 206 | + buck2_archive_url = f"https://github.com/facebook/buck2/releases/download/{target_buck_version}/{buck_info.archive_name}" |
205 | 207 |
|
206 |
| - try: |
207 |
| - print(f"Downloading buck2 from {buck2_archive_url}...", file=sys.stderr) |
208 |
| - archive_file, _ = urllib.request.urlretrieve(buck2_archive_url) |
| 208 | + print(f"Downloading buck2 from {buck2_archive_url}...", file=sys.stderr) |
| 209 | + ssl_context = ssl.create_default_context(cafile=certifi.where()) |
209 | 210 |
|
210 |
| - # Extract and chmod. |
211 |
| - with open(archive_file, "rb") as f: |
212 |
| - data = f.read() |
213 |
| - decompressed_bytes = zstd.decompress(data) |
| 211 | + with urllib.request.urlopen(buck2_archive_url, context=ssl_context) as request: |
| 212 | + # Extract and chmod. |
| 213 | + data = request.read() |
| 214 | + decompressed_bytes = zstd.decompress(data) |
214 | 215 |
|
215 |
| - with open(buck2_local_path, "wb") as f: |
216 |
| - f.write(decompressed_bytes) |
| 216 | + with open(buck2_local_path, "wb") as f: |
| 217 | + f.write(decompressed_bytes) |
217 | 218 |
|
218 |
| - file_stat = os.stat(buck2_local_path) |
219 |
| - os.chmod(buck2_local_path, file_stat.st_mode | stat.S_IEXEC) |
220 |
| - finally: |
221 |
| - os.remove(archive_file) |
222 |
| - |
223 |
| - return buck2_local_path |
| 219 | + file_stat = os.stat(buck2_local_path) |
| 220 | + os.chmod(buck2_local_path, file_stat.st_mode | stat.S_IEXEC) |
224 | 221 |
|
| 222 | + return buck2_local_path |
225 | 223 |
|
226 | 224 | def main():
|
227 | 225 | args = parse_args()
|
|
0 commit comments