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