1 #! /bin/bash 2 # 3 # Copyright (C) 2010 Igalia S.L. All rights reserved. 4 # 5 # This library is free software; you can redistribute it and/or 6 # modify it under the terms of the GNU Library General Public 7 # License as published by the Free Software Foundation; either 8 # version 2 of the License, or (at your option) any later version. 9 # 10 # This library is distributed in the hope that it will be useful, 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 # Library General Public License for more details. 14 # 15 # You should have received a copy of the GNU Library General Public License 16 # along with this library; see the file COPYING.LIB. If not, write to 17 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 # Boston, MA 02110-1301, USA. 19 20 exec 2>&1 21 22 : ${BUILDBOT_CONFIG:=/etc/daemontools-buildbot.conf} 23 24 # Read configuration file 25 [ -r "${BUILDBOT_CONFIG}" ] && . "${BUILDBOT_CONFIG}" 26 27 : ${buildbot_user:=${USER:-${LOGNAME}}} 28 : ${crashmon_output:=''} 29 30 # Expand all "env_*" environment variables 31 for varname in ${!env_*} ; do 32 eval "export ${varname#env_}=\${${varname}}" 33 done 34 35 36 if [ ! -d "${crashmon_output}" ] 37 then 38 if ! [ "${crashmon_output}" ] 39 then 40 echo "Dump directory '${crashmon_output}' does not exist (sleeping)" 41 fi 42 sleep $(( 60 * 60 * 4 )) 43 exit 111 44 fi 45 46 47 if ! [ "${buildbot_bits}" ] 48 then 49 # Guess bits (32/64) from uname -m 50 machine=$(uname -m) 51 case ${machine} in 52 x86_64 | amd64 | ia64 | ppc64) 53 buildbot_bits="64" ;; 54 *) 55 buildbot_bits="32" ;; 56 esac 57 fi 58 59 : ${crashmon_bin_path:="${buildbot_path}/gtk-linux-${buildbot_bits}-debug/build/WebKitBuild/Debug/Programs"} 60 61 62 cd "${crashmon_output}" 63 exec /usr/bin/env - \ 64 PATH="${PATH}" \ 65 SHELL="/bin/bash" \ 66 USER="${buildbot_user}" \ 67 arch="${buildbot_bits}" \ 68 LOGNAME="${buildbot_user}" \ 69 coredir="${crashmon_output}" \ 70 HOME="/home/${buildbot_user}" \ 71 mailto="${crashmon_mailto:-''}" \ 72 programpath="${crashmon_bin_path}" \ 73 /usr/bin/setuidgid "${buildbot_user}" "$(pwd)/crashmon" 74 75