#!/usr/bin/env python3
# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import argparse
import json
import os
import urllib.request
_GIT_HOST = "https://chromium.googlesource.com/chromium/src.git/"
_COMMIT_URL = _GIT_HOST + "+log/refs/heads/main/third_party/win_virtual_display?n=1&format=json"
_ARCHIVE_URL = _GIT_HOST + "+archive/{}/third_party/win_virtual_display.tar.gz"
def get_last_commit():
"""Returns the last commit of third_party/win_virtual_display."""
content = urllib.request.urlopen(_COMMIT_URL).read().decode("utf-8")
# Remove the leading json safety prefix.
assert content.startswith(")]}'")
return json.loads(content[4:])["log"][0]["commit"]
def get_download_url(sha):
"""Returns the manifest for the following download procedure."""
partial_manifest = {
"url": [_ARCHIVE_URL.format(sha)],
"ext": ".tar.gz",
}
print(json.dumps(partial_manifest))
def main():
ap = argparse.ArgumentParser()
sub = ap.add_subparsers()
latest = sub.add_parser("latest")
latest.set_defaults(func=lambda: print(get_last_commit()))
download = sub.add_parser("get_url")
download.set_defaults(func=lambda: get_download_url(
os.environ.get("_3PP_VERSION", get_last_commit())))
ap.parse_args().func()
if __name__ == "__main__":
main()