Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame^] | 1 | #!/bin/bash |
| 2 | set -e |
| 3 | |
| 4 | if [ $# == 2 ] && [ $1 == '-m' ] |
| 5 | then |
| 6 | manual_mode=true |
| 7 | elif [ $# != 1 ] |
| 8 | then |
| 9 | echo Usage: $0 [-m] |
| 10 | echo " -m: manually specify build numbers" |
| 11 | exit 1 |
| 12 | fi |
| 13 | |
| 14 | fetchtool='sso_client --location --request_timeout 60 --url' |
| 15 | build_server='https://android-build-uber.corp.google.com' |
| 16 | branch_prefix='kernel-n-dev-android-goldfish-' |
| 17 | |
| 18 | # kernel_img[branch]="build_server_output local_file_name" |
| 19 | declare -A kernel_img |
| 20 | |
| 21 | kernel_img[3.4-arm]="zImage arm/kernel-qemu-armv7" |
| 22 | kernel_img[3.4-mips]="vmlinux mips/kernel-qemu" |
| 23 | kernel_img[3.4-x86]="bzImage x86/kernel-qemu" |
| 24 | # arm ranchu emulator not ready |
| 25 | # kernel_img[3.10-arm]="Image arm/ranchu/kernel-qemu" |
| 26 | kernel_img[3.10-arm64]="Image arm64/kernel-qemu" |
| 27 | kernel_img[3.10-mips]="vmlinux mips/ranchu/kernel-qemu" |
| 28 | kernel_img[3.10-mips64]="vmlinux mips64/kernel-qemu" |
| 29 | kernel_img[3.10-x86]="bzImage x86/ranchu/kernel-qemu" |
| 30 | kernel_img[3.10-x86_64]="bzImage x86_64/ranchu/kernel-qemu" |
| 31 | kernel_img[3.10-x86_64-qemu1]="bzImage x86_64/kernel-qemu" |
| 32 | |
| 33 | printf "Upgrade emulator kernels\n\n" > emu_kernel.commitmsg |
| 34 | |
| 35 | for key in "${!kernel_img[@]}" |
| 36 | do |
| 37 | branch=$branch_prefix$key |
| 38 | branch_url=$build_server/builds/$branch-linux-kernel |
| 39 | |
| 40 | # Find the latest build by searching for highest build number since |
| 41 | # build server doesn't provide the "latest" link. |
| 42 | build=`$fetchtool $branch_url | \ |
| 43 | sed -rn "s/<li><a href=".*">([0-9]+)<\/a><\/li>/\1/p" | \ |
| 44 | sort -nr | head -n 1` |
| 45 | |
| 46 | if $manual_mode |
| 47 | then |
| 48 | read -p "Enter build number for $branch: [$build]" input |
| 49 | build="${input:-$build}" |
| 50 | fi |
| 51 | |
| 52 | echo Fetching build $build from branch $branch |
| 53 | |
| 54 | # file_info[0] - kernel image on build server |
| 55 | # file_info[1] - kernel image in local tree |
| 56 | file_info=(${kernel_img[$key]}) |
| 57 | |
| 58 | $fetchtool $branch_url/$build/${file_info[0]} > ${file_info[1]} |
| 59 | |
| 60 | git add ${file_info[1]} |
| 61 | |
| 62 | printf "$branch - build: $build\n" >> emu_kernel.commitmsg |
| 63 | done |
| 64 | |
| 65 | last_3_4_commit=`git log | \ |
| 66 | sed -rn "s/.*Upgrade 3.4 kernel images to ([a-z0-9]+).*/\1/p" | \ |
| 67 | head -n 1` |
| 68 | |
| 69 | last_3_10_commit=`git log | \ |
| 70 | sed -rn "s/.*Upgrade 3.10 kernel images to ([a-z0-9]+).*/\1/p" | \ |
| 71 | head -n 1` |
| 72 | |
| 73 | if [ ! -d goldfish_cache ] |
| 74 | then |
| 75 | mkdir goldfish_cache |
| 76 | git clone https://android.googlesource.com/kernel/goldfish goldfish_cache |
| 77 | fi |
| 78 | |
| 79 | pushd goldfish_cache |
| 80 | |
| 81 | git fetch origin |
| 82 | |
| 83 | git checkout remotes/origin/android-goldfish-3.4 |
| 84 | tot_3_4_commit=`git log --oneline -1 | cut -d' ' -f1` |
| 85 | printf "\nUpgrade 3.4 kernel images to ${tot_3_4_commit}\n" >> ../emu_kernel.commitmsg |
| 86 | git log --oneline HEAD...${last_3_4_commit} >> ../emu_kernel.commitmsg |
| 87 | |
| 88 | git checkout remotes/origin/android-goldfish-3.10 |
| 89 | tot_3_10_commit=`git log --oneline -1 | cut -d' ' -f1` |
| 90 | printf "\nUpgrade 3.10 kernel images to ${tot_3_10_commit}\n" >> ../emu_kernel.commitmsg |
| 91 | git log --oneline HEAD...${last_3_10_commit} >> ../emu_kernel.commitmsg |
| 92 | |
| 93 | popd |
| 94 | |
| 95 | git commit -t emu_kernel.commitmsg |
| 96 | |
| 97 | rm emu_kernel.commitmsg |
| 98 | |