Home | History | Annotate | Download | only in crashmon
      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