]> git.wh0rd.org - home.git/blob - .bin/cros-cbuildbot
better check before running
[home.git] / .bin / cros-cbuildbot
1 #!/bin/bash
2
3 if ! cbuildbot -h >& /dev/null ; then
4 cd ~/chromiumos || exit 1
5 fi
6
7 # cache the sudo timestamp
8 sudo echo "" >/dev/null
9
10 d=/usr/local/google/home/vapier
11 if [[ ! -d ${d} ]] ; then
12 exit 1
13 fi
14
15 d+="/trybot"
16 if mount | grep -qs $d ; then
17 echo "mounts found in $d"
18 exit 1
19 fi
20
21 if [[ $1 == "--noclean" ]] ; then
22 shift
23 else
24 echo "Cleaning ${d}"
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
37 fi
38
39 # find all the buildbot branches
40 echo "Looking up repo branches"
41 repos=$(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 }')
56 if [[ -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}" "$@"
67 fi
68
69 vexec() { echo "$@"; exec "$@"; }
70 vexec cbuildbot --buildroot=${d} "$@"