]> git.wh0rd.org - home.git/blame - .bin/cros-cbuildbot
add umount-tree helper
[home.git] / .bin / cros-cbuildbot
CommitLineData
3c347239
MF
1#!/bin/bash
2
0f71e16b
MF
3if ! cbuildbot -h >& /dev/null ; then
4 cd ~/chromiumos || exit 1
5fi
6
7# cache the sudo timestamp
8sudo echo "" >/dev/null
9
3c347239 10d=/usr/local/google/home/vapier
70b466db
MF
11if [[ ! -d ${d} ]] ; then
12 exit 1
13fi
14
15d+="/trybot"
16if mount | grep -qs $d ; then
17 echo "mounts found in $d"
18 exit 1
19fi
3c347239 20
70b466db
MF
21if [[ $1 == "--noclean" ]] ; then
22 shift
23else
3c347239 24 echo "Cleaning ${d}"
0f71e16b
MF
25 pushd "${d}" >/dev/null
26 clean=(
27 built-sdk.tbz2
28 chroot
29 new-sdk-chroot
30 #sdks
31 src/build
32 test_results.tgz
33 trybot_archive
34 )
35 sudo rm -rf "${clean[@]}"
36 popd >/dev/null
3c347239
MF
37fi
38
39# find all the buildbot branches
0f71e16b 40echo "Looking up repo branches"
3c347239
MF
41repos=$(r b | cut -b4- | awk '$1 == "bb" {
42 # Single repo output:
43 # bb | in src/third_party/portage-stable
44 # Multi repo output:
45 # bb | in:
46 # src/third_party/portage-stable
47 # src/third_party/chromiumos-overlay
48 if ($3 == "in")
49 print $NF
50 while (getline) {
51 if ($2 == "|")
52 break;
53 print $NF;
54 }
55}')
56if [[ -n ${repos} ]] ; then
57 echo "Auto pulling patches from 'bb' branch in repos:"
58 printf '\t%s\n' ${repos}
59
60 p_flag=""
61 for r in ${repos} ; do
62 r=$(r list | awk -v r="${r}" '$1 == r { print $NF }')
63 p_flag+="${r}:bb "
64 done
65
66 set -- -p "${p_flag}" "$@"
67fi
68
69vexec() { echo "$@"; exec "$@"; }
70vexec cbuildbot --buildroot=${d} "$@"