From d87d64b89a4bc332476798e58709d749fefedd93 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 01 Nov 2011 17:46:05 -0400 Subject: Initial commit. --- diff --git a/testbuild b/testbuild new file mode 100755 index 0000000..d2857fb --- /dev/null +++ b/testbuild @@ -0,0 +1,83 @@ +#! /bin/sh +# +# testbuild 0.1.0 +# +# Copyright (C) 2011 Patrick "P. J." McDermott +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +VERSION='0.1.0' + +usage() +{ + printf 'Usage: %s srcdir recipient[,recipient...] [repository] [refspec]\n'\ + "${1}" >&2 +} + +error() +{ + printf '%s\n' "${1}" >&2 + exit 1 +} + +if [ ${#} -lt 2 -o ${#} -gt 4 ]; then + usage "${0}" + exit 1 +fi + +srcdir="${1}" +file=`echo "${srcdir}" | sed 's@/$@@' | sed 's@^.*/\(.*\)$@\1@'` +recipients=`echo "${2}" | tr ',' ' '` +repository=${3:-'origin'} +refspec=${4:-'master'} + +cd "${srcdir}" || + error "Cannot enter directory '${srcdir}'." + +git pull "${repository}" "${refspec}" > /dev/null 2>&1 || + error "Cannot pull '${repository}/${refspec}'." +git remote update "${repository}" > /dev/null 2>&1 || + error "Cannot update '${repository}'." + +output='Build log: +' +errors=false + +output="${output} +\$ make clean" +output="${output} +`make clean > /dev/null } 2>&1`" || errors=true +output="${output} +\$ make" +output="${output} +`make 2>&1`" || errors=true +output="${output} +\$ make clean" +output="${output} +`make clean 2>&1`" || errors=true +output="${output} +\$ make debug" +output="${output} +`make debug 2>&1`" || errors=true + +if ${errors}; then + printf '%s' "${output}" | + mailx -s "testbuild: Failed build of ${file}" ${recipients} +fi -- cgit v0.9.1