1 | #!/bin/bash |
---|
2 | |
---|
3 | # -------------------------------------------------------------------------------- |
---|
4 | # configuration: |
---|
5 | |
---|
6 | # working directories |
---|
7 | SOURCE_DIR=./ps_input_db |
---|
8 | TEMP_DIR=./ps_tmpdata |
---|
9 | DEST_DIR=./ps_serverdata |
---|
10 | WORKER_DIR=./ps_workerdir |
---|
11 | |
---|
12 | # names output files |
---|
13 | DB_BASENAME=probe_db_ |
---|
14 | TREE_BASENAME=current.tree |
---|
15 | CLIENTNAME=arb_probe_library.jar |
---|
16 | |
---|
17 | # which pt server to build and use |
---|
18 | PTS=../lib/pts |
---|
19 | PT_SERVER=probe_server |
---|
20 | |
---|
21 | # which probelengths shall be generated |
---|
22 | # CREATE="15 16" |
---|
23 | CREATE="15 16 17 18 19 20" |
---|
24 | |
---|
25 | # does NOT work for probes longer than 20 |
---|
26 | # CREATE="20 30 40" |
---|
27 | |
---|
28 | # -------------------------------------------------------------------------------- |
---|
29 | |
---|
30 | mkdir -p $SOURCE_DIR |
---|
31 | mkdir -p $DEST_DIR |
---|
32 | mkdir -p $TEMP_DIR |
---|
33 | mkdir -p $WORKER_DIR |
---|
34 | |
---|
35 | usage() { |
---|
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 | |
---|
43 | if [ -z "$1" ]; then |
---|
44 | usage |
---|
45 | echo "Error: Missing arguments" |
---|
46 | echo "" |
---|
47 | exit 1 |
---|
48 | fi |
---|
49 | |
---|
50 | DB=../lib/pts/probe_server.arb # use last database |
---|
51 | TREE=$1 |
---|
52 | |
---|
53 | if [ \! -f "$DB" ]; then |
---|
54 | usage |
---|
55 | echo "Error: File '$DB' not found" |
---|
56 | exit 1 |
---|
57 | fi |
---|
58 | |
---|
59 | OUT=$TEMP_DIR/$DB_BASENAME |
---|
60 | rm $DEST_DIR/$DB_BASENAME* |
---|
61 | |
---|
62 | # ls -al $PTS/ $SOURCE_DIR/ |
---|
63 | |
---|
64 | create_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 | |
---|
71 | TREENAME=$DEST_DIR/$TREE_BASENAME |
---|
72 | TREEVERSIONFILE=$DEST_DIR/$TREE_BASENAME.version |
---|
73 | ZIPPEDTREENAME=${TREENAME}.gz |
---|
74 | |
---|
75 | rm $TREENAME |
---|
76 | |
---|
77 | # generate the tree version |
---|
78 | touch $TREEVERSIONFILE |
---|
79 | # TREEVERSION=`stat --format=%Y $TREEVERSIONFILE` # stat not generally available |
---|
80 | TREEVERSION=`./getFiletime.pl $TREEVERSIONFILE` |
---|
81 | |
---|
82 | create_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 | |
---|
92 | create_db() { |
---|
93 | create_group_db $1 && \ |
---|
94 | create_group_design_db $1 && \ |
---|
95 | mv $OUT$1_design.arb $DEST_DIR |
---|
96 | } |
---|
97 | |
---|
98 | abort_work() { |
---|
99 | echo "Aborting.." |
---|
100 | exit 1 |
---|
101 | } |
---|
102 | |
---|
103 | create_dbs() { |
---|
104 | while [ \! -z "$1" ]; do |
---|
105 | create_db $1 || abort_work |
---|
106 | shift |
---|
107 | done |
---|
108 | } |
---|
109 | |
---|
110 | treenames() { |
---|
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 |
---|
124 | create_dbs $CREATE |
---|
125 | |
---|
126 | # merge trees |
---|
127 | echo "------------------------------------------------------------" |
---|
128 | SAVED_TREES=`treenames $TREENAME $CREATE` |
---|
129 | echo ./bin/pgd_tree_merge $SAVED_TREES $TREENAME |
---|
130 | ./bin/pgd_tree_merge $SAVED_TREES $TREENAME || rm $TREENAME |
---|
131 | rm $SAVED_TREES |
---|
132 | |
---|
133 | # prepare zipped tree |
---|
134 | if [ -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 |
---|
142 | else |
---|
143 | echo "Error: $TREENAME was not generated" |
---|
144 | exit 1 |
---|
145 | fi |
---|
146 | |
---|
147 | CLIENTSOURCE=../PROBE_WEB/CLIENT/$CLIENTNAME |
---|
148 | CLIENTDEST=$DEST_DIR/$CLIENTNAME |
---|
149 | |
---|
150 | if [ -f $CLIENTSOURCE ]; then |
---|
151 | echo Preparing client for download.. |
---|
152 | cp -p $CLIENTSOURCE $CLIENTDEST |
---|
153 | else |
---|
154 | echo "Could not update client version (file not found '$CLIENTSOURCE')" |
---|
155 | exit 1 |
---|
156 | fi |
---|
157 | |
---|
158 | ls -al $DEST_DIR |
---|
159 | echo "" |
---|
160 | echo "Fine - ready to start the server!" |
---|