exit 1
fi
-. /home/neurodebian/neurodebian.git/tools/nd_cmdsettings.sh
+family=$1
+dist=$2
+
+set -e
+
+if [ -z "$family" ]; then
+ echo "You need to provide a distribution family ('debian', 'ubuntu'); prefix with 'nd+' to enable the NeuroDebian repository."
+ exit 1
+fi
+
+if [ -z "$dist" ]; then
+ echo "You need to provide a distribution codename (e.g. 'lenny', 'squeeze')."
+ exit 1
+fi
+
+. /etc/neurodebian/cmdsettings.sh
# common options
opts="--distribution $dist --aptcache $aptcache --buildplace $buildplace"
shift; shift; shift; shift
fi
+# failed will be set to 1 if any build fails
+failed=
for a in $arch; do
+ # default
+ options="$opts"
+ if [ "$a" = "amd64" ]; then
+ # only force source into the upload for NeuroDebian
+ if [ ! "$family" = "${family#nd+*}" ]; then
+ options="$opts --debbuildopts -sa"
+ fi
+ else
+ options="$opts --debbuildopts -B"
+ fi
+
echo "Building for $family $dist $a ..."
+ buildfile="${dscfile%.dsc}_${a}.build"
+ tsfile="${buildfile}.timestamp.`date +%s`" # "unique" timestamp file
+ /usr/bin/time -f "%E real, %U user, %S sys, %O out" -o "${tsfile}" \
cowbuilder --build $dscfile \
--basepath ${cowbuilderroot}/cow/${family}-${dist}-${a}.cow \
--buildresult . \
- $opts \
- $*
+ --logfile "${buildfile}" \
+ $options \
+ "$@" && status='OK' || { status='FAILED'; failed=1; }
+ timeinfo=$(tail -n 1 "${tsfile}")
+ # Update the summary of builds
+ touch summary.build # Assure existence
+ sed -i -e "s/\(${buildfile}.*out$\)/\1 OLD/g" summary.build # Mark previous entry as OLD
+ echo -e "${buildfile}\t$status\t$timeinfo" >> summary.build # Add current one
+ rm -f "${tsfile}"
done
+# Exit with failure status if any built failed
+[ -z $failed ] || exit 1