source: tags/cvs_2_svn/PROBE_SERVER/server_databases_recalc.sh

Last change on this file was 2536, checked in by westram, 20 years ago
  • same as server_databases_rebuild.sh - but skips probe_match
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.6 KB
Line 
1#!/bin/bash
2
3# --------------------------------------------------------------------------------
4# configuration:
5
6# working directories
7SOURCE_DIR=./ps_input_db
8TEMP_DIR=./ps_tmpdata
9DEST_DIR=./ps_serverdata
10WORKER_DIR=./ps_workerdir
11
12# names output files
13DB_BASENAME=probe_db_
14TREE_BASENAME=current.tree
15CLIENTNAME=arb_probe_library.jar
16
17# which pt server to build and use
18PTS=../lib/pts
19PT_SERVER=probe_server
20
21# which probelengths shall be generated
22# CREATE="15 16"
23CREATE="15 16 17 18 19 20"
24
25# does NOT work for probes longer than 20
26# CREATE="20 30 40"
27
28# --------------------------------------------------------------------------------
29
30mkdir -p $SOURCE_DIR
31mkdir -p $DEST_DIR
32mkdir -p $TEMP_DIR
33mkdir -p $WORKER_DIR
34
35usage() {
36    echo ""
37    echo "Usage: server_databases_recalc <tree>"
38    echo "where.."
39    echo "  <tree> = name of tree to provide ('DEFAULT' to use last selected tree)"
40    echo ""
41}
42
43if [ -z "$1" ]; then
44    usage
45    echo "Error: Missing arguments"
46    echo ""
47    exit 1
48fi
49
50DB=../lib/pts/probe_server.arb # use last database
51TREE=$1
52
53if [ \! -f "$DB" ]; then
54    usage
55    echo "Error: File '$DB' not found"
56    exit 1
57fi
58
59OUT=$TEMP_DIR/$DB_BASENAME
60rm $DEST_DIR/$DB_BASENAME*
61
62# ls -al $PTS/ $SOURCE_DIR/
63
64create_group_db() {
65    echo "------------------------------------------------------------"
66    echo "Generating probe_groups for length=$1"
67    echo "./bin/arb_probe_group -noprobe $DB $TREE $PT_SERVER.arb $OUT $1"
68    ./bin/arb_probe_group -noprobe $DB $TREE $PT_SERVER.arb $OUT $1
69}
70
71TREENAME=$DEST_DIR/$TREE_BASENAME
72TREEVERSIONFILE=$DEST_DIR/$TREE_BASENAME.version
73ZIPPEDTREENAME=${TREENAME}.gz
74
75rm $TREENAME
76
77# generate the tree version
78touch $TREEVERSIONFILE
79# TREEVERSION=`stat --format=%Y $TREEVERSIONFILE` # stat not generally available
80TREEVERSION=`./getFiletime.pl $TREEVERSIONFILE`
81
82create_group_design_db() {
83    echo "------------------------------------------------------------"
84    echo "Designing probes for length=$1"
85    if [ -f $TREENAME.$1 ]; then
86        rm $TREENAME.$1
87    fi
88    echo "./bin/arb_probe_group_design $DB $PT_SERVER.arb $OUT $1 $TREENAME.$1 $TREEVERSION"
89    ./bin/arb_probe_group_design $DB $PT_SERVER.arb $OUT $1 $TREENAME.$1 $TREEVERSION
90}
91
92create_db() {
93    create_group_db $1 && \
94        create_group_design_db $1 && \
95        mv $OUT$1_design.arb $DEST_DIR
96}
97
98abort_work() {
99    echo "Aborting.."
100    exit 1
101}
102
103create_dbs() {
104    while [ \! -z "$1" ]; do
105        create_db $1 || abort_work
106        shift
107    done
108}
109
110treenames() {
111    BASENAME=$1
112    shift
113    TREENAMES=
114    while [ \! -z "$1" ]; do
115        TREENAMES="$TREENAMES $BASENAME.$1"
116        shift
117    done
118    echo $TREENAMES
119}
120
121# --------------------------------------------------------------------------------
122
123# create databases
124create_dbs $CREATE
125
126# merge trees
127echo "------------------------------------------------------------"
128SAVED_TREES=`treenames $TREENAME $CREATE`
129echo ./bin/pgd_tree_merge $SAVED_TREES $TREENAME
130./bin/pgd_tree_merge $SAVED_TREES $TREENAME || rm $TREENAME
131rm $SAVED_TREES
132
133# prepare zipped tree
134if [ -f $TREENAME ]; then
135    echo Zipping $TREENAME ..
136    if [ -f $ZIPPEDTREENAME ]; then
137        rm $ZIPPEDTREENAME
138    fi
139    gzip -c $TREENAME > $ZIPPEDTREENAME
140    touch -r $TREEVERSIONFILE $ZIPPEDTREENAME
141    rm $TREENAME $TREEVERSIONFILE
142else
143    echo "Error: $TREENAME was not generated"
144    exit 1
145fi
146
147CLIENTSOURCE=../PROBE_WEB/CLIENT/$CLIENTNAME
148CLIENTDEST=$DEST_DIR/$CLIENTNAME
149
150if [ -f $CLIENTSOURCE ]; then
151    echo Preparing client for download..
152    cp -p $CLIENTSOURCE $CLIENTDEST
153else
154    echo "Could not update client version (file not found '$CLIENTSOURCE')"
155    exit 1
156fi
157
158ls -al $DEST_DIR
159echo ""
160echo "Fine - ready to start the server!"
Note: See TracBrowser for help on using the repository browser.