]> git.wh0rd.org Git - 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} "$@"