File: updatetestsuitedb.sh

package info (click to toggle)
lazarus 2.0.10%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 219,188 kB
  • sloc: pascal: 1,867,962; xml: 265,716; cpp: 56,595; sh: 3,005; java: 609; makefile: 568; perl: 297; sql: 222; ansic: 137
file content (95 lines) | stat: -rwxr-xr-x 2,131 bytes parent folder | download | duplicates (12)
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
#!/bin/bash

# Don't stop on errors
#set -e
#set -x

TESTSUITEDIR=$HOME/testsuite
INCOMINGDIR=$TESTSUITEDIR/incoming
FAILEDDIR=$TESTSUITEDIR/failed
WORKDIR=$TESTSUITEDIR/work
TESTSOURCEDIR=$HOME/src/lazarus
TESTSUITEBINDIR=$TESTSUITEDIR/bin
DATENAME=`date +%Y-%m-%d-%0k-%M-%S`
LOGFILE=$HOME/logs/updatetestsuitedb.$DATENAME.log
DBCFG=$TESTSUITEBINDIR/dbdigest.cfg.dbdata

# processfile <file>
processfile() {
  echo
  echo "`date`: Start processing file $1"
  echo

  basefn=`basename $1`
  
  rm -rf $WORKDIR
  mkdir -p $WORKDIR

  cd $WORKDIR
  cp -pr $1 $WORKDIR
  
#    better avoid usernames and passwords in the script (available in SVN among others)
#     echo "DatabaseName=TESTSUITE" >> dbdigest.cfg
#     echo "UserName=yyy" >> dbdigest.cfg
#     echo "PassWord=xxx" >> dbdigest.cfg
  if [ -f $DBCFG ]; then
    cat $DBCFG >> dbdigest.cfg
  if [ -f dbdigest.cfg ]; then
    # remove unit paths from testsuite parameters
    sed -e 's/-Fu[^ ]*//' < dbdigest.cfg > dbdigest.cfg.new
    mv dbdigest.cfg.new dbdigest.cfg

#    doesn't work if hostname contains number
#    date=`echo $1 | sed 's/[^0-9]*\([0-9]*\)[^0-9]*/\1/'`
#   next won't work if hostname contains 12 consecutive numbers, better (jonas)
     date=`echo $1 | sed 's/.*\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*/\1/'`
#     echo "Date=$date" >> dbdigest.cfg
     echo "TestSrcDir=$TESTSOURCEDIR" >> dbdigest.cfg
     echo "logfile=$1" >> dbdigest.cfg


     $TESTSUITEBINDIR/importtestresults
     err=$?
    else
     echo "ERROR: No dbdigest.cfg found!"
     err=1
    fi
  else
    echo "ERROR: No $DBCFG found!"
    err=1
  fi

  if [ $err -eq 0 ]; then
    rm -f $1
  else
    echo "ERROR: dbdigest failed, moving file $basefn to $FAILEDDIR"
    mv $1 $FAILEDDIR/$basefn
  fi
  
  echo "Done"
}


#
# First check if there are new files to process
#
FILES=`ls $INCOMINGDIR/results-*.xml 2> /dev/null`
if [ "$FILES" = "" ]; then
  exit 0
fi

PATH=".:/bin:/usr/bin"
(
date

# Update sources
cd $TESTSOURCEDIR 
svn up

for f in $FILES; do
    processfile $f
done
echo "`date`: Finished."
) > $LOGFILE 2>&1 </dev/null

gzip $LOGFILE