xref: /aosp_15_r20/external/angle/tools/angle_tools.py (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker#!/usr/bin/python3
2*8975f5c5SAndroid Build Coastguard Worker#
3*8975f5c5SAndroid Build Coastguard Worker# Copyright 2019 The ANGLE Project Authors. All rights reserved.
4*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
5*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
6*8975f5c5SAndroid Build Coastguard Worker#
7*8975f5c5SAndroid Build Coastguard Worker# angle_tools.py:
8*8975f5c5SAndroid Build Coastguard Worker#   Common functionality to scripts in angle/tools directory.
9*8975f5c5SAndroid Build Coastguard Worker
10*8975f5c5SAndroid Build Coastguard Workerimport os
11*8975f5c5SAndroid Build Coastguard Workerimport platform
12*8975f5c5SAndroid Build Coastguard Workerimport subprocess
13*8975f5c5SAndroid Build Coastguard Worker
14*8975f5c5SAndroid Build Coastguard Workeris_windows = platform.system() == 'Windows'
15*8975f5c5SAndroid Build Coastguard Workeris_linux = platform.system() == 'Linux'
16*8975f5c5SAndroid Build Coastguard Workeris_mac = platform.system() == 'Darwin'
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard Worker
19*8975f5c5SAndroid Build Coastguard Workerdef find_file_in_path(filename):
20*8975f5c5SAndroid Build Coastguard Worker    """ Finds |filename| by searching the environment paths """
21*8975f5c5SAndroid Build Coastguard Worker    path_delimiter = ';' if is_windows else ':'
22*8975f5c5SAndroid Build Coastguard Worker    for env_path in os.environ['PATH'].split(path_delimiter):
23*8975f5c5SAndroid Build Coastguard Worker        full_path = os.path.join(env_path, filename)
24*8975f5c5SAndroid Build Coastguard Worker        if os.path.isfile(full_path):
25*8975f5c5SAndroid Build Coastguard Worker            return full_path
26*8975f5c5SAndroid Build Coastguard Worker    raise Exception('Cannot find %s in environment' % filename)
27*8975f5c5SAndroid Build Coastguard Worker
28*8975f5c5SAndroid Build Coastguard Worker
29*8975f5c5SAndroid Build Coastguard Workerdef get_exe_name(file_name, windows_extension):
30*8975f5c5SAndroid Build Coastguard Worker    exe_name = file_name
31*8975f5c5SAndroid Build Coastguard Worker    if is_windows:
32*8975f5c5SAndroid Build Coastguard Worker        exe_name += windows_extension
33*8975f5c5SAndroid Build Coastguard Worker    return exe_name
34*8975f5c5SAndroid Build Coastguard Worker
35*8975f5c5SAndroid Build Coastguard Worker
36*8975f5c5SAndroid Build Coastguard Workerdef upload_to_google_storage(bucket, files):
37*8975f5c5SAndroid Build Coastguard Worker    file_dir = os.path.dirname(os.path.realpath(__file__))
38*8975f5c5SAndroid Build Coastguard Worker    upload_script = os.path.join(file_dir, '..', 'third_party', 'depot_tools',
39*8975f5c5SAndroid Build Coastguard Worker                                 'upload_to_google_storage.py')
40*8975f5c5SAndroid Build Coastguard Worker    upload_args = ['python3', upload_script, '-b', bucket] + files
41*8975f5c5SAndroid Build Coastguard Worker    return subprocess.call(upload_args) == 0
42*8975f5c5SAndroid Build Coastguard Worker
43*8975f5c5SAndroid Build Coastguard Worker
44*8975f5c5SAndroid Build Coastguard Workerdef stage_google_storage_sha1(files):
45*8975f5c5SAndroid Build Coastguard Worker    git_exe = get_exe_name('git', '.bat')
46*8975f5c5SAndroid Build Coastguard Worker    git_exe = find_file_in_path(git_exe)
47*8975f5c5SAndroid Build Coastguard Worker
48*8975f5c5SAndroid Build Coastguard Worker    sha1_files = [f + '.sha1' for f in files]
49*8975f5c5SAndroid Build Coastguard Worker    return subprocess.call([git_exe, 'add'] + sha1_files) == 0
50