1*90c8c64dSAndroid Build Coastguard Worker#!/usr/bin/env python3 2*90c8c64dSAndroid Build Coastguard Worker# 3*90c8c64dSAndroid Build Coastguard Worker# Copyright (C) 2022 The Android Open Source Project 4*90c8c64dSAndroid Build Coastguard Worker# 5*90c8c64dSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 6*90c8c64dSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*90c8c64dSAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*90c8c64dSAndroid Build Coastguard Worker# 9*90c8c64dSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*90c8c64dSAndroid Build Coastguard Worker# 11*90c8c64dSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*90c8c64dSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 13*90c8c64dSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*90c8c64dSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*90c8c64dSAndroid Build Coastguard Worker# limitations under the License. 16*90c8c64dSAndroid Build Coastguard Worker# 17*90c8c64dSAndroid Build Coastguard Worker 18*90c8c64dSAndroid Build Coastguard Workerimport argparse 19*90c8c64dSAndroid Build Coastguard Workerimport logging 20*90c8c64dSAndroid Build Coastguard Worker 21*90c8c64dSAndroid Build Coastguard Workerimport update 22*90c8c64dSAndroid Build Coastguard Workerimport utils 23*90c8c64dSAndroid Build Coastguard Worker 24*90c8c64dSAndroid Build Coastguard WorkerVNDK_SNAPSHOT_SOURCE_BRANCHES = { 25*90c8c64dSAndroid Build Coastguard Worker 29: 'qt-gsi-release', 26*90c8c64dSAndroid Build Coastguard Worker 30: 'android11-gsi', 27*90c8c64dSAndroid Build Coastguard Worker 31: 'android12-gsi', 28*90c8c64dSAndroid Build Coastguard Worker 32: 'android12L-gsi', 29*90c8c64dSAndroid Build Coastguard Worker 33: 'android13-gsi', 30*90c8c64dSAndroid Build Coastguard Worker} 31*90c8c64dSAndroid Build Coastguard Worker 32*90c8c64dSAndroid Build Coastguard Workerdef fetch_and_update_snapshots(versions, args): 33*90c8c64dSAndroid Build Coastguard Worker for version in versions: 34*90c8c64dSAndroid Build Coastguard Worker if version not in VNDK_SNAPSHOT_SOURCE_BRANCHES: 35*90c8c64dSAndroid Build Coastguard Worker raise ValueError ('Unknown VNDK version: {}'.format(version)) 36*90c8c64dSAndroid Build Coastguard Worker logging.info('Updating snapshot version {}'.format(version)) 37*90c8c64dSAndroid Build Coastguard Worker branch = VNDK_SNAPSHOT_SOURCE_BRANCHES[version] 38*90c8c64dSAndroid Build Coastguard Worker bid = utils.get_latest_vndk_bid(branch) 39*90c8c64dSAndroid Build Coastguard Worker 40*90c8c64dSAndroid Build Coastguard Worker update.run(version, branch, bid, None, args.use_current_branch, 41*90c8c64dSAndroid Build Coastguard Worker args.remote, args.verbose) 42*90c8c64dSAndroid Build Coastguard Worker 43*90c8c64dSAndroid Build Coastguard Workerdef get_args(parser): 44*90c8c64dSAndroid Build Coastguard Worker parser.add_argument( 45*90c8c64dSAndroid Build Coastguard Worker 'versions', 46*90c8c64dSAndroid Build Coastguard Worker metavar='vndk_version', 47*90c8c64dSAndroid Build Coastguard Worker type=int, 48*90c8c64dSAndroid Build Coastguard Worker nargs='*', 49*90c8c64dSAndroid Build Coastguard Worker help='list of versions to fetch and update') 50*90c8c64dSAndroid Build Coastguard Worker parser.add_argument( 51*90c8c64dSAndroid Build Coastguard Worker '--all', 52*90c8c64dSAndroid Build Coastguard Worker action='store_true', 53*90c8c64dSAndroid Build Coastguard Worker help='fetch all vndk snapshots') 54*90c8c64dSAndroid Build Coastguard Worker parser.add_argument( 55*90c8c64dSAndroid Build Coastguard Worker '--use-current-branch', 56*90c8c64dSAndroid Build Coastguard Worker action='store_true', 57*90c8c64dSAndroid Build Coastguard Worker help='Perform the update in the current branch. Do not repo start.') 58*90c8c64dSAndroid Build Coastguard Worker parser.add_argument( 59*90c8c64dSAndroid Build Coastguard Worker '--remote', 60*90c8c64dSAndroid Build Coastguard Worker default='aosp', 61*90c8c64dSAndroid Build Coastguard Worker help=('Remote name to fetch and check if the revision of VNDK snapshot ' 62*90c8c64dSAndroid Build Coastguard Worker 'is included in the source to conform GPL license. default=aosp')) 63*90c8c64dSAndroid Build Coastguard Worker parser.add_argument( 64*90c8c64dSAndroid Build Coastguard Worker '-v', 65*90c8c64dSAndroid Build Coastguard Worker '--verbose', 66*90c8c64dSAndroid Build Coastguard Worker action='count', 67*90c8c64dSAndroid Build Coastguard Worker default=0, 68*90c8c64dSAndroid Build Coastguard Worker help='Increase output verbosity, e.g. "-v", "-vv"') 69*90c8c64dSAndroid Build Coastguard Worker return parser.parse_args() 70*90c8c64dSAndroid Build Coastguard Worker 71*90c8c64dSAndroid Build Coastguard Workerdef main(): 72*90c8c64dSAndroid Build Coastguard Worker parser = argparse.ArgumentParser() 73*90c8c64dSAndroid Build Coastguard Worker args = get_args(parser) 74*90c8c64dSAndroid Build Coastguard Worker utils.set_logging_config(args.verbose) 75*90c8c64dSAndroid Build Coastguard Worker 76*90c8c64dSAndroid Build Coastguard Worker if args.all: 77*90c8c64dSAndroid Build Coastguard Worker versions = VNDK_SNAPSHOT_SOURCE_BRANCHES.keys() 78*90c8c64dSAndroid Build Coastguard Worker fetch_and_update_snapshots(versions, args) 79*90c8c64dSAndroid Build Coastguard Worker return 80*90c8c64dSAndroid Build Coastguard Worker 81*90c8c64dSAndroid Build Coastguard Worker if not args.versions: 82*90c8c64dSAndroid Build Coastguard Worker parser.print_help() 83*90c8c64dSAndroid Build Coastguard Worker return 84*90c8c64dSAndroid Build Coastguard Worker 85*90c8c64dSAndroid Build Coastguard Worker fetch_and_update_snapshots(args.versions, args) 86*90c8c64dSAndroid Build Coastguard Worker 87*90c8c64dSAndroid Build Coastguard Workerif __name__ == '__main__': 88*90c8c64dSAndroid Build Coastguard Worker main() 89