]> git.wh0rd.org - home.git/blame - .bin/cros-cbuildbot
PS1: shorten slightly & add PS0 recovery
[home.git] / .bin / cros-cbuildbot
CommitLineData
3c347239
MF
1#!/bin/bash
2
3384cca9 3set -e
bf6ab864 4
f19b7c42
MF
5vexec() {
6 local i fmt
7 for (( i = 1; i <= $#; ++i )) ; do
8 case ${!i} in
9 *" "*) fmt="'%s'";;
10 *) fmt="%s";;
11 esac
12 printf "${fmt}" "${!i}"
13 if [[ $i -lt $# ]] ; then
14 printf ' '
15 else
16 echo
17 fi
18 done
19 exec "$@"
20}
c297fe22 21
bf6ab864 22cd ~/chromiumos
0f71e16b 23
3c347239 24d=/usr/local/google/home/vapier
70b466db
MF
25if [[ ! -d ${d} ]] ; then
26 exit 1
27fi
28
a4b98ea9
MF
29if [[ -z ${UNSHARE} ]] ; then
30 if type -P unshare >&/dev/null ; then
31 exec sudo unshare -m -- sudo -u ${USER} \
32 UNSHARE=true PATH="${PATH}" "$0" "$@"
33 fi
34 unset UNSHARE
35fi
36
70b466db 37d+="/trybot"
bf6ab864 38mkdir -p "${d}"
70b466db
MF
39if mount | grep -qs $d ; then
40 echo "mounts found in $d"
41 exit 1
42fi
bf6ab864
MF
43if [[ -L $d ]] ; then
44 rd=$(readlink $d)
45 if mount | grep -qs $rd ; then
46 echo "mounts found in $rd"
47 exit 1
48 fi
420f8f8a 49fi
3c347239 50
70b466db
MF
51if [[ $1 == "--noclean" ]] ; then
52 shift
426a73af 53elif [[ " $* " != *" --remote "* ]] ; then
3c347239 54 echo "Cleaning ${d}"
0f71e16b
MF
55 pushd "${d}" >/dev/null
56 clean=(
57 built-sdk.tbz2
a4b98ea9 58# chroot
0f71e16b 59 new-sdk-chroot
a4b98ea9 60 sdks
0f71e16b
MF
61 src/build
62 test_results.tgz
63 trybot_archive
64 )
65 sudo rm -rf "${clean[@]}"
a4b98ea9
MF
66# [[ -L .cache ]] && rm -f .cache || :
67# mkdir -p .cache
68# sudo mount --bind -n ~/chromiumos/.cache .cache
0f71e16b 69 popd >/dev/null
3c347239
MF
70fi
71
72# find all the buildbot branches
0f71e16b 73echo "Looking up repo branches"
3c347239
MF
74repos=$(r b | cut -b4- | awk '$1 == "bb" {
75 # Single repo output:
76 # bb | in src/third_party/portage-stable
77 # Multi repo output:
78 # bb | in:
79 # src/third_party/portage-stable
80 # src/third_party/chromiumos-overlay
81 if ($3 == "in")
82 print $NF
83 while (getline) {
84 if ($2 == "|")
85 break;
86 print $NF;
87 }
88}')
89if [[ -n ${repos} ]] ; then
90 echo "Auto pulling patches from 'bb' branch in repos:"
91 printf '\t%s\n' ${repos}
92
93 p_flag=""
94 for r in ${repos} ; do
95 r=$(r list | awk -v r="${r}" '$1 == r { print $NF }')
96 p_flag+="${r}:bb "
97 done
98
99 set -- -p "${p_flag}" "$@"
100fi
a4b98ea9 101set -- --cache-dir=~/chromiumos/.cache "$@"
3c347239 102
3c347239 103vexec cbuildbot --buildroot=${d} "$@"