MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / main

Function main

Tools/Support/PortableMSVCDownloader.py:316–356  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

314
315
316def main():
317 parser = argparse.ArgumentParser()
318 parser.add_argument("--dest", required=True)
319 parser.add_argument("--cache-dir", required=True)
320 parser.add_argument("--wine", required=True)
321 parser.add_argument("--wine-prefix", required=True)
322 parser.add_argument("--accept-license", action="store_true")
323 parser.add_argument("--msvc-version")
324 parser.add_argument("--sdk-version")
325 args = parser.parse_args()
326
327 destination = Path(args.dest).resolve()
328 cache_dir = Path(args.cache_dir).resolve()
329 wine_prefix = Path(args.wine_prefix).resolve()
330
331 channel_manifest = download_json(MANIFEST_URL)
332 visual_studio_manifest = first(
333 channel_manifest["channelItems"], lambda item: item["id"] == "Microsoft.VisualStudio.Manifests.VisualStudio"
334 )
335 vs_manifest = download_json(visual_studio_manifest["payloads"][0]["url"])
336 packages = build_payload_map(vs_manifest)
337
338 msvc_version, sdk_version, _, sdk_package_id, license_url = resolve_versions(
339 channel_manifest, packages, args.msvc_version, args.sdk_version
340 )
341
342 if not args.accept_license:
343 print(f"Visual Studio license must be accepted before download: {license_url}", file=sys.stderr)
344 return 1
345
346 if destination.exists():
347 shutil.rmtree(destination)
348 destination.mkdir(parents=True, exist_ok=True)
349 wine_prefix.mkdir(parents=True, exist_ok=True)
350
351 extract_msvc(packages, cache_dir, destination, msvc_version)
352 extract_sdk(packages, cache_dir, destination, sdk_package_id, args.wine, wine_prefix)
353 cleanup_layout(destination)
354 layout_msvc_version, layout_sdk_version = resolve_layout_versions(destination)
355 write_metadata(destination, layout_msvc_version, layout_sdk_version, license_url, args.wine)
356 return 0
357
358
359if __name__ == "__main__":

Callers 1

Calls 11

download_jsonFunction · 0.85
firstFunction · 0.85
build_payload_mapFunction · 0.85
resolve_versionsFunction · 0.85
printFunction · 0.85
extract_msvcFunction · 0.85
extract_sdkFunction · 0.85
cleanup_layoutFunction · 0.85
resolve_layout_versionsFunction · 0.85
write_metadataFunction · 0.85
existsMethod · 0.80

Tested by

no test coverage detected