xref: /aosp_15_r20/external/crosvm/android-merge-1-setup.sh (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
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