Source code

Revision control

Copy as Markdown

Other Tools

#! /bin/sh
########################################################################
#
# /u/sonmi/bin/qa_stage - /u/svbld/bin/init/nss/qa_stage
#
# this script is supposed to convert the tinderbox and daily QA files
# for use on mozilla.org
#
# parameters
# ----------
# nssversion (supported: 30b, 31, tip)
# builddate (default - today)
#
########################################################################
if [ -z "$BUILDNUMBER" ]
then
BUILDNUMBER=1
fi
if [ `uname` = "Linux" ] ; then
PATH=".:/u/sonmi/bin:/u/sonmi/bin/linux:/usr/bsd:/usr/ucb/:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/usr/bin/X11:/usr/etc:/etc:/usr/demos:/usr/demos/bin:/usr/local/bin:/usr/local/X11/bin:/tools/ns/bin"
export PATH
fi
Echo()
{
if [ "$O_SILENT" = "OFF" ] ; then
echo $*
fi
}
################################### qa_stage_init ##########################
#
########################################################################
qa_stage_init()
{
umask 000
eval_opts $*
if [ -z "${QAYEAR}" ] ; then
QAYEAR=`date +%Y`
elif [ "$QAYEAR" = "" ] ; then
QAYEAR=`date +%Y`
fi
Echo "Init..."
DAYBUILD=${QAYEAR}${BUILDDATE}.${BUILDNUMBER}
NSS_D0=/share/builds/mccrel3/nss
NSS_VER_DIR=${NSS_D0}/nss${NSSVER}
NTDIST=${NSS_VER_DIR}/builds/${DAYBUILD}/blowfish_NT4.0_Win95/mozilla/dist
UXDIST=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/dist
TESTSCRIPTDIR=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/security/nss/tests
RESULTDIR=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/tests_results/security
TBX_RESULTDIR=${NSS_D0}/nsstip/tinderbox/tests_results/security
MOZ_D0=/pub/security/nss
MOZ_RESULTDIR=${MOZ_D0}/daily_qa/${DAYBUILD}
MOZ_TBX_RESULTDIR=${MOZ_D0}/tinderbox
export BUILDDATE NSSVER QAYEAR NTDIST UXDIST TESTSCRIPTDIR RESULTDIR
export IPLANET_TBX_URL IPLANET_DQA_URL MOZ_TBX_URL MOZ_DQA_URL
STAGE_1=/u/sonmi/tmp/ftp_stage
if [ ! -d $STAGE_1 ] ; then
Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit"
exit 1
fi
cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit)
rm all.tar* 2>/dev/null
TBX_STAGE=$STAGE_1/tinderbox
DQA_STAGE=$STAGE_1/daily_qa/${DAYBUILD}
Echo "Staging area tbx: $TBX_STAGE"
Echo "Staging area daily QA (DQA): $DQA_STAGE"
Echo "Resultdir (sourcedir) for daily QA (RESULTDIR): $RESULTDIR"
}
################################### qa_stage_dqa ##########################
#
########################################################################
qa_stage_dqa()
{
Echo "DQA:..."
Echo "Resultdir (sourcedir) for daily QA (RESULTDIR): $RESULTDIR"
#set -x
if [ ! -d $RESULTDIR ] ; then
Echo "Resultdir $RESULTDIR does not exist, can't push daily QA"
return
fi
cd $RESULTDIR || return
#for w in `find . -name "result*html"`
for w in `find . -name "result.html"`
do
if [ ! -d $DQA_STAGE/`dirname $w` ] ; then
mkdir -p $DQA_STAGE/`dirname $w`
fi
rm $DQA_STAGE/$w 2>/dev/null
cat $w | reformat_qa >$DQA_STAGE/$w
done
for w in `find . -name "output.log" -o -name "results.html"`
do
#echo $w
if [ ! -d $DQA_STAGE/`dirname $w` ] ; then
mkdir -p $DQA_STAGE/`dirname $w`
fi
cp $w $DQA_STAGE/$w
done
}
################################### qa_stage_tbx ##########################
#
########################################################################
qa_stage_tbx()
{
Echo "tbx: "
if [ ! -d $TBX_RESULTDIR ] ; then
Echo "TBX_RESULTDIR $TBX_RESULTDIR does not exist"
return
fi
cd $TBX_RESULTDIR || return
Echo "find from $TBX_FIND_FROM"
for w in `find $TBX_FIND_FROM -name "result.html"`
do
if [ ! -d "$TBX_STAGE/`dirname $w`" ] ; then
mkdir -p $TBX_STAGE/`dirname $w`
fi
rm $TBX_STAGE/$w 2>/dev/null
cat $w | reformat_qa >$TBX_STAGE/$w
done
for w in `find $TBX_FIND_FROM -name "output.log" -o -name "results.html"`
do
if [ ! -d $TBX_STAGE/`dirname $w` ] ; then
mkdir -p $TBX_STAGE/`dirname $w`
fi
cp $w $TBX_STAGE/$w
done
}
match_tbxdirs()
{
YY=`date +%Y`
DD=`date +%d`
MM=`date +%m`
HH=`date +%H`
TBX_FIND_FROM="*-$YY$MM$DD-$HH.*"
i=$1
while [ $i -gt 0 ] ; do
i=`expr $i - 1`
HH=`expr $HH - 1`
if [ $HH -lt 0 ] ; then
HH=23
DD=`expr $DD - 1`
if [ $DD -eq 0 ] ; then
MM=`expr $MM - 1`
case $MM in
0)
YY=`expr $YY - 1`
MM=12
DD=31
;;
[13578]|10|12)
DD=31
;;
2)
DD=28
;;
[469]|11)
DD=30
;;
esac
fi
fi
case $MM in
[123456789])
MM=0$MM
;;
esac
case $DD in
[123456789])
DD=0$DD
;;
esac
case $HH in
[0123456789])
HH=0$HH
;;
esac
TBX_FIND_FROM="$TBX_FIND_FROM *-$YY$MM$DD-$HH.*"
done
}
################################### eval_opts ##########################
# global shell function, evapuates options and parameters, sets flags
# variables and defaults
########################################################################
eval_opts()
{
DO_TBX=OFF
DO_DQA=OFF
DO_CLEAN=OFF
O_SILENT=OFF
O_INCREMENTAL=OFF
O_MAIL=OFF
BUILDDATE=`date +%m%d`
NSSVER=tip
TBX_FIND_FROM="."
while [ -n "$1" ]
do
case $1 in
-d)
DO_DQA=ON
;;
-m)
O_MAIL=ON
shift
MAILINGLIST=$1
if [ -z "$MAILINGLIST" ]
then
echo "Error: -m requires a mailinglist to follow, for example sonmi@iplanet.com"
exit
fi
;;
-ti)
DO_TBX=ON
match_tbxdirs 2
O_INCREMENTAL=ON
;;
-t)
DO_TBX=ON
;;
-c)
DO_CLEAN=ON
;;
-s)
O_SILENT=ON
;;
tip|3[0-9]*)
NSSVER=$1
;;
[01][0-9][0-3][0-9])
BUILDDATE=$1
;;
esac
shift
done
}
qa_stage_init $*
if [ "$DO_CLEAN" = "ON" ] ; then
Echo "Cleaning old stuff"
if [ ! -d $STAGE_1 ] ; then
Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit"
exit 1
fi
cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit)
if [ -n "$TBX_STAGE" -a -d "$TBX_STAGE" ] ; then
rm -rf $TBX_STAGE/*
else
Echo "nothing here to clean..."
fi
fi
if [ "$DO_DQA" = "ON" ] ; then
qa_stage_dqa
if [ "$O_MAIL" = "ON" -a -f "$DQA_STAGE/result.html" ] ; then
cat $DQA_STAGE/result.html | /usr/sbin/sendmail $MAILINGLIST
fi
fi
if [ "$DO_TBX" = "ON" ] ; then
qa_stage_tbx
fi
if [ ! -d $STAGE_1 ] ; then
Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit"
exit 1
fi
cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit)
Echo "tar..."
if [ "$O_SILENT" = "ON" ] ; then
TARPARAM=cf
else
TARPARAM=cvf
fi
if [ "$DO_DQA" = "ON" -a "$DO_TBX" = "ON" ] ; then
Echo "tar $TARPARAM all.tar daily_qa tinderbox"
tar $TARPARAM all.tar daily_qa tinderbox
elif [ "$DO_DQA" = "ON" ] ; then
Echo "tar $TARPARAM all.tar daily_qa"
tar $TARPARAM all.tar daily_qa
else
Echo "tar $TARPARAM all.tar tinderbox"
tar $TARPARAM all.tar tinderbox
fi
gzip all.tar
# ssh-agent > /u/sonmi/.ssh/ssh-agent.info
# setenv like it says in that file
# ssh-add
SSH_AUTH_SOCK=`grep SSH_AUTH_SOCK /u/sonmi/.ssh/ssh-agent.info | sed -e 's/setenv SSH_AUTH_SOCK //' -e 's/;//'`
SSH_AGENT_PID=`grep SSH_AGENT_PID /u/sonmi/.ssh/ssh-agent.info | sed -e 's/setenv SSH_AGENT_PID //' -e 's/;//'`
export SSH_AUTH_SOCK SSH_AGENT_PID
if [ "$O_SILENT" = "OFF" ] ; then
set -x
scp all.tar.gz sonmi@stage.mozilla.org:/home/ftp/pub/security/nss
ssh -l sonmi stage.mozilla.org '/home/sonmi/bin/nssqa_stage '
else
scp all.tar.gz sonmi@stage.mozilla.org:/home/ftp/pub/security/nss >/dev/null 2>/dev/null
ssh -l sonmi stage.mozilla.org '/home/sonmi/bin/nssqa_stage ' >/dev/null 2>/dev/null
fi
#" rlogin huey "
#" sftp sonmi@stage.mozilla.org"
#" cd /home/ftp/pub/security/nss"
#" lcd tmp/ftp_stage"
#" put all.tar.gz"
#" quit "
#" ssh -l sonmi stage.mozilla.org"
#" cd /home/ftp/pub/security/nss"
#" gunzip all.tar.gz"
#" tar xvf all.tar"
#" rm all.tar"