1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
# Common handy shell script functions
l=/var/run/reboot-lock
reboot_lock () {
exec 3<$l
if ! flock --shared -w 0 3; then
echo 2>&1 "Cannot acquire reboot lock."
#exit 1
fi
}
reboot_unlock () {
flock --shared -u 3
}
now () {
date -u +%F:%H:%M:%S
}
build_description () {
case $1 in
NI)
DESC="Netinst CD";;
MACNI)
DESC="Mac Netinst CD";;
CD)
DESC="Full CD";;
DVD)
DESC="Full DVD";;
BD)
DESC="Blu-ray";;
DLBD)
DESC="Dual-layer Blu-ray";;
KDECD)
DESC="KDE CD";;
GNOMECD)
DESC="GNOME CD";;
LIGHTCD)
DESC="XFCE/lxde CD";;
XFCECD)
DESC="XFCE CD";;
LXDECD)
DESC="lxde CD";;
*)
DESC="UNKNOWN";;
esac
echo "$DESC"
}
calc_time () {
echo $1 $2 | awk '
{
split($1, start, ":")
start_time = (3600*start[2]) + (60*start[3]) + start[4]
split($2, end, ":")
end_time = (3600*end[2]) + (60*end[3]) + end[4]
# Cope with going to a new day; do not worry about more than 1 day!
if (start[1] != end[1]) { end_time += 86400 }
time_taken = end_time - start_time
hours = int(time_taken / 3600)
time_taken -= (hours * 3600)
minutes = int(time_taken / 60)
time_taken -= (minutes * 60)
seconds = time_taken
printf("%dh%2.2dm%2.2ds\n", hours, minutes, seconds)
}'
}
build_started () {
export BUILDNAME=$1
BUILDS_RUNNING="$BUILDS_RUNNING $BUILDNAME"
export ${BUILDNAME}START=`now`
}
build_finished () {
ARCH="$1"
BUILDNAME="$2"
BUILDNAMESTART="${BUILDNAME}START"
start=${!BUILDNAMESTART}
. $PUBDIRJIG/$ARCH/$BUILDNAME-trace
time_spent=`calc_time $start $end`
echo " $ARCH $BUILDNAME build started at $start, ended at $end (took $time_spent), error $error"
if [ $error -ne 0 ] ; then
arch_error="$arch_error "$BUILDNAME"FAIL/$error/$end/$logfile"
fi
}
catch_parallel_builds () {
# Catch parallel builds here
while [ "$BUILDS_RUNNING"x != ""x ] ; do
BUILDS_STILL_RUNNING=""
for BUILDNAME in $BUILDS_RUNNING; do
if [ -e $PUBDIRJIG/$arch/$BUILDNAME-trace ] ; then
build_finished $arch $BUILDNAME
else
BUILDS_STILL_RUNNING="$BUILDS_STILL_RUNNING $BUILDNAME"
fi
done
BUILDS_RUNNING=$BUILDS_STILL_RUNNING
if [ "$BUILDS_RUNNING"x != ""x ] ; then
sleep 1
fi
done
if [ "$arch_error"x = ""x ] ; then
arch_error="none"
fi
arch_end=`now`
arch_time=`calc_time $arch_start $arch_end`
echo "$arch build started at $arch_start, ended at $arch_end (took $arch_time), error(s) $arch_error"
}
generate_checksums_for_arch () {
ARCH=$1
JIGDO_DIR=$2
ISO_DIR=$(echo $JIGDO_DIR | sed 's,jigdo-,iso-,g')
echo "$ARCH: Generating checksum files for the builds in $JIGDO_DIR"
$TOPDIR/debian-cd/tools/imagesums $JIGDO_DIR $EXTENSION > /dev/null
cp $JIGDO_DIR/*SUMS*${EXTENSION} $ISO_DIR
}
catch_live_builds () {
# Catch parallel build types here
while [ ! -f $PUBDIRLIVETRACE ] || [ ! -f $PUBDIROSTRACE ] ; do
sleep 1
done
. $PUBDIROSTRACE
time_spent=`calc_time $start $end`
echo "openstack build started at $start, ended at $end (took $time_spent), error $error"
. $PUBDIRLIVETRACE
time_spent=`calc_time $start $end`
echo "live builds started at $start, ended at $end (took $time_spent), error $error"
}
arch_has_firmware () {
arch=$1
for arch1 in $ARCHES_FIRMWARE; do
if [ "$arch" = "$arch1" ] ; then
return 0
fi
done
return 1
}
|