[go: up one dir, main page]

blob: 8130322489c4960e6841b84c3a81e042ea63d59e [file] [log] [blame]
#!/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
BASE_URL = 'https://dl.google.com/dl/cloudsdk/channels/rapid'
def do_latest():
print(
json.load(urllib.request.urlopen(BASE_URL +
'/components-2.json'))['version'])
def get_download_url(version, platform):
targ_os, targ_arch = platform.split('-')
ext = '.zip' if targ_os == 'windows' else '.tar.gz'
download_url = (
BASE_URL + '/downloads/google-cloud-sdk-%(version)s-%(os)s-%(arch)s%(ext)s'
% {
'version': version,
'os': {'mac': 'darwin'}.get(targ_os, targ_os),
'arch': {
'386': 'x86',
'amd64': 'x86_64',
'arm64': 'arm',
}[targ_arch],
'ext': ext
})
partial_manifest = {
'url': [download_url],
'ext': ext,
}
print(json.dumps(partial_manifest))
def main():
ap = argparse.ArgumentParser()
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 = ap.parse_args()
return opts.func(opts)
if __name__ == '__main__':
sys.exit(main())