blob: 5ffb46eddc1ece4351869ae3f85c68a249d0e4c9 [file] [edit]
#!/usr/bin/env python3
# Copyright 2018 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 sys
import urllib.request
import packaging.version
# Go 1.25 require MacOS 12.
# Update after Fleet fleet drop support for MacOS 11 (2026-07-01).
def do_latest():
print('1.24.13')
return
def get_download_url(version, platform, kind):
if kind == 'prebuilt':
platform = platform.replace('mac', 'darwin')
ext = '.zip' if platform.startswith('windows') else '.tar.gz'
download_url = (
'https://dl.google.com/go/go%(version)s.%(platform)s%(ext)s' % {
'version': version,
'platform': platform,
'ext': ext
})
else:
ext = '.tar.gz'
download_url = ('https://dl.google.com/go/go%s.src.tar.gz' % (version,))
partial_manifest = {
'url': [download_url],
'ext': ext,
}
print(json.dumps(partial_manifest))
def main():
ap = argparse.ArgumentParser()
ap.add_argument('kind', choices=('prebuilt', 'source'))
sub = ap.add_subparsers(dest='action', required=True)
latest = sub.add_parser('latest')
latest.set_defaults(func=lambda _opts: do_latest())
download = sub.add_parser('get_url')
download.set_defaults(func=lambda opts: get_download_url(
os.environ['_3PP_VERSION'], os.environ['_3PP_PLATFORM'], opts.kind))
opts = ap.parse_args()
return opts.func(opts)
if __name__ == '__main__':
sys.exit(main())