]> git.wh0rd.org - home.git/blob - .bin/cros-cbuildbot
also check realpath
[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 rd=$(readlink $d)
21 if mount | grep -qs $rd ; then
22 echo "mounts found in $rd"
23 exit 1
24 fi
25
26 if [[ $1 == "--noclean" ]] ; then
27 shift
28 else
29 echo "Cleaning ${d}"
30 pushd "${d}" >/dev/null
31 clean=(
32 built-sdk.tbz2
33 chroot
34 new-sdk-chroot
35 #sdks
36 src/build
37 test_results.tgz
38 trybot_archive
39 )
40 sudo rm -rf "${clean[@]}"
41 sudo find "${d}"/sdks -mtime +3 -delete
42 popd >/dev/null
43 fi
44
45 # find all the buildbot branches
46 echo "Looking up repo branches"
47 repos=$(r b | cut -b4- | awk '$1 == "bb" {
48 # Single repo output:
49 # bb | in src/third_party/portage-stable
50 # Multi repo output:
51 # bb | in:
52 # src/third_party/portage-stable
53 # src/third_party/chromiumos-overlay
54 if ($3 == "in")
55 print $NF
56 while (getline) {
57 if ($2 == "|")
58 break;
59 print $NF;
60 }
61 }')
62 if [[ -n ${repos} ]] ; then
63 echo "Auto pulling patches from 'bb' branch in repos:"
64 printf '\t%s\n' ${repos}
65
66 p_flag=""
67 for r in ${repos} ; do
68 r=$(r list | awk -v r="${r}" '$1 == r { print $NF }')
69 p_flag+="${r}:bb "
70 done
71
72 set -- -p "${p_flag}" "$@"
73 fi
74
75 vexec() { echo "$@"; exec "$@"; }
76 vexec cbuildbot --buildroot=${d} "$@"