#!/bin/bash
-if ! cbuildbot -h >& /dev/null ; then
- cd ~/chromiumos || exit 1
-fi
+set -e
+
+vexec() {
+ local i fmt
+ for (( i = 1; i <= $#; ++i )) ; do
+ case ${!i} in
+ *" "*) fmt="'%s'";;
+ *) fmt="%s";;
+ esac
+ printf "${fmt}" "${!i}"
+ if [[ $i -lt $# ]] ; then
+ printf ' '
+ else
+ echo
+ fi
+ done
+ exec "$@"
+}
-# cache the sudo timestamp
-sudo echo "" >/dev/null
+cd ~/chromiumos
d=/usr/local/google/home/vapier
if [[ ! -d ${d} ]] ; then
exit 1
fi
+if [[ -z ${UNSHARE} ]] ; then
+ if type -P unshare >&/dev/null ; then
+ exec sudo unshare -m -- sudo -u ${USER} \
+ UNSHARE=true PATH="${PATH}" "$0" "$@"
+ fi
+ unset UNSHARE
+fi
+
d+="/trybot"
+mkdir -p "${d}"
if mount | grep -qs $d ; then
echo "mounts found in $d"
exit 1
fi
+if [[ -L $d ]] ; then
+ rd=$(readlink $d)
+ if mount | grep -qs $rd ; then
+ echo "mounts found in $rd"
+ exit 1
+ fi
+fi
if [[ $1 == "--noclean" ]] ; then
shift
-else
+elif [[ " $* " != *" --remote "* ]] ; then
echo "Cleaning ${d}"
pushd "${d}" >/dev/null
clean=(
built-sdk.tbz2
- chroot
+# chroot
new-sdk-chroot
- #sdks
+ sdks
src/build
test_results.tgz
trybot_archive
)
sudo rm -rf "${clean[@]}"
+# [[ -L .cache ]] && rm -f .cache || :
+# mkdir -p .cache
+# sudo mount --bind -n ~/chromiumos/.cache .cache
popd >/dev/null
fi
set -- -p "${p_flag}" "$@"
fi
+set -- --cache-dir=~/chromiumos/.cache "$@"
-vexec() { echo "$@"; exec "$@"; }
vexec cbuildbot --buildroot=${d} "$@"