#!/usr/bin/python
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Pulls down tools required to build flutter."""

import os
import subprocess
import sys

SRC_ROOT = (os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
BUILDTOOLS = os.path.join(SRC_ROOT, 'buildtools')

sys.path.insert(0, os.path.join(SRC_ROOT, 'tools'))
import find_depot_tools

DEPOT_PATH = find_depot_tools.add_depot_tools_to_path()


def Update():
    path = os.path.join(BUILDTOOLS, 'update.sh')
    return subprocess.call(['/bin/bash', path, '--toolchain', '--gn'], cwd=SRC_ROOT)


def UpdateOnWindows():
    sha1_file = os.path.join(BUILDTOOLS, 'win', 'gn.exe.sha1')
    downloader_script = os.path.join(DEPOT_PATH, 'download_from_google_storage.py')
    download_cmd = [
      'python',
      downloader_script,
      '--no_auth',
      '--no_resume',
      '--quiet',
      '--platform=win*',
      '--bucket',
      'chromium-gn',
      '-s',
      sha1_file
    ]
    return subprocess.call(download_cmd)


def main(argv):
    if sys.platform.startswith('win'):
        return UpdateOnWindows()
    return Update()


if __name__ == '__main__':
    sys.exit(main(sys.argv))

Add portable buildtools update script (#46)