| #! /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 |
| |
| |
| IPLANET_TBX_URL="http://cindercone.red.iplanet.com${TBX_RESULTDIR}" |
| IPLANET_DQA_URL="http://cindercone.red.iplanet.com${RESULTDIR}" |
| |
| MOZ_TBX_URL="ftp://ftp.mozilla.org${MOZ_TBX_RESULTDIR}" |
| MOZ_DQA_URL="ftp://ftp.mozilla.org${MOZ_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" |
| |