1*bb4ee6a4SAndroid Build Coastguard Worker#!/bin/bash 2*bb4ee6a4SAndroid Build Coastguard Worker 3*bb4ee6a4SAndroid Build Coastguard Workerset -ex 4*bb4ee6a4SAndroid Build Coastguard Worker 5*bb4ee6a4SAndroid Build Coastguard Workerfunction usage() { echo "$0 [-s][-b]" && exit 1; } 6*bb4ee6a4SAndroid Build Coastguard Worker 7*bb4ee6a4SAndroid Build Coastguard Workersync="" 8*bb4ee6a4SAndroid Build Coastguard Workerbranch="" 9*bb4ee6a4SAndroid Build Coastguard Workerwhile getopts 'sb' FLAG; do 10*bb4ee6a4SAndroid Build Coastguard Worker case ${FLAG} in 11*bb4ee6a4SAndroid Build Coastguard Worker s) 12*bb4ee6a4SAndroid Build Coastguard Worker sync="sync" 13*bb4ee6a4SAndroid Build Coastguard Worker ;; 14*bb4ee6a4SAndroid Build Coastguard Worker b) 15*bb4ee6a4SAndroid Build Coastguard Worker branch="branch" 16*bb4ee6a4SAndroid Build Coastguard Worker ;; 17*bb4ee6a4SAndroid Build Coastguard Worker ?) 18*bb4ee6a4SAndroid Build Coastguard Worker echo "unknown flag." 19*bb4ee6a4SAndroid Build Coastguard Worker usage 20*bb4ee6a4SAndroid Build Coastguard Worker ;; 21*bb4ee6a4SAndroid Build Coastguard Worker esac 22*bb4ee6a4SAndroid Build Coastguard Workerdone 23*bb4ee6a4SAndroid Build Coastguard Worker 24*bb4ee6a4SAndroid Build Coastguard Workershift $((OPTIND-1)) 25*bb4ee6a4SAndroid Build Coastguard Workerif [ $# != 0 ]; then 26*bb4ee6a4SAndroid Build Coastguard Worker echo "unknown positional argument." 27*bb4ee6a4SAndroid Build Coastguard Worker usage 28*bb4ee6a4SAndroid Build Coastguard Workerfi 29*bb4ee6a4SAndroid Build Coastguard Worker 30*bb4ee6a4SAndroid Build Coastguard Workerif [ "$sync" = "sync" ] 31*bb4ee6a4SAndroid Build Coastguard Workerthen 32*bb4ee6a4SAndroid Build Coastguard Worker read -p "This script will sync your crosvm project. Do you wish to proceed? [y/N]" -n 1 -r 33*bb4ee6a4SAndroid Build Coastguard Worker if [[ ! $REPLY =~ ^[Yy]$ ]] 34*bb4ee6a4SAndroid Build Coastguard Worker then 35*bb4ee6a4SAndroid Build Coastguard Worker exit 1; 36*bb4ee6a4SAndroid Build Coastguard Worker fi 37*bb4ee6a4SAndroid Build Coastguard Workerfi 38*bb4ee6a4SAndroid Build Coastguard Worker 39*bb4ee6a4SAndroid Build Coastguard Workerif [ -z $ANDROID_BUILD_TOP ]; then echo "forgot to source build/envsetup.sh?" && exit 1; fi 40*bb4ee6a4SAndroid Build Coastguard Workercd $ANDROID_BUILD_TOP/external/crosvm 41*bb4ee6a4SAndroid Build Coastguard Worker 42*bb4ee6a4SAndroid Build Coastguard Workerif [[ ! -z $(git branch --list merge) && ! "$branch" = "branch" ]]; 43*bb4ee6a4SAndroid Build Coastguard Worker then 44*bb4ee6a4SAndroid Build Coastguard Worker echo "branch merge already exists. Forgot to clean up?" && exit 1; 45*bb4ee6a4SAndroid Build Coastguard Workerfi 46*bb4ee6a4SAndroid Build Coastguard Workerrustup update 47*bb4ee6a4SAndroid Build Coastguard Workerif [ "$sync" = "sync" ] 48*bb4ee6a4SAndroid Build Coastguard Workerthen 49*bb4ee6a4SAndroid Build Coastguard Worker repo sync -c -j96 50*bb4ee6a4SAndroid Build Coastguard Worker git fetch aosp upstream-main 51*bb4ee6a4SAndroid Build Coastguard Workerfi 52*bb4ee6a4SAndroid Build Coastguard Worker 53*bb4ee6a4SAndroid Build Coastguard Workersource $ANDROID_BUILD_TOP/build/envsetup.sh 54*bb4ee6a4SAndroid Build Coastguard Workerm blueprint_tools cargo_embargo crosvm 55*bb4ee6a4SAndroid Build Coastguard Worker 56*bb4ee6a4SAndroid Build Coastguard Workerif [ ! "$branch" = "branch" ]; 57*bb4ee6a4SAndroid Build Coastguard Worker then 58*bb4ee6a4SAndroid Build Coastguard Worker repo start merge; 59*bb4ee6a4SAndroid Build Coastguard Workerfi 60*bb4ee6a4SAndroid Build Coastguard Worker 61*bb4ee6a4SAndroid Build Coastguard Workergit merge --log aosp/upstream-main 62*bb4ee6a4SAndroid Build Coastguard Worker$ANDROID_BUILD_TOP/external/crosvm/tools/install-deps 63*bb4ee6a4SAndroid Build Coastguard Worker$ANDROID_BUILD_TOP/external/crosvm/android-fork-stats.sh 64