-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdprt_make_deployment
More file actions
executable file
·421 lines (421 loc) · 15.1 KB
/
dprt_make_deployment
File metadata and controls
executable file
·421 lines (421 loc) · 15.1 KB
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
#!/bin/csh
# $Header: /space/home/eng/cjm/cvs/dprt/scripts/dprt_make_deployment,v 1.3 2012-01-04 17:12:51 cjm Exp $
# Version: $Revision: 1.3 $
# By $Author: cjm $
# Make a deployment tar file.
# This contains:
# The DpRt
# Usage:
# dprt_make_deployment <machine>
if ( ${#argv} != 1 ) then
echo "Please specify a deployment machine."
echo "$0 <machine>"
exit 1
endif
set machine_name = "$1"
if ( "${machine_name}" == "-help") then
echo "$0 <machine>"
exit 0
endif
# dev root directory
set dev_dir = "~dev"
# dev binary root directory
set dev_bin_dir = "${dev_dir}/bin"
# directory script was run in
set current_dir = `pwd`
# temporary directory containing root of deployment tree (which becomes root of tar).
set deployment_dir = "/tmp/dprt_deployment"
# temporary directory for deployment temporary files
set deployment_tmp_dir = "/tmp/dprt_deployment/tmp"
# temporary directory containing root dprt directory.
set deployment_dprt_dir = "/tmp/dprt_deployment/dprt"
# temporary directory containing root dprt wcs directory.
set deployment_wcs_dir = "/tmp/dprt_deployment/dprt/wcs_fit"
# temporary directory containing root bin directory.
set deployment_bin_dir = "/tmp/dprt_deployment/dprt/bin"
# temporary directory containing root bin directory.
set deployment_wcs_bin_dir = "/tmp/dprt_deployment/dprt/wcs_fit/bin"
# directory location of tar
set deployment_tar_dir = "${dev_dir}/public_html/dprt/deployment"
# name of tar file
set deployment_tar = "dprt_deployment_${machine_name}.tar"
# install script name
set install_script = dprt_tar_install
# libdprt camera/instrument name
# switch on machine_name?
if( ${machine_name} == "datared" ) then
set libdprt_prefix_list = "ccs o"
else
echo "No libdprt prefix configured for ${machine_name}."
exit 1
endif
#
# Host specific configuration
#
if( "${HOSTTYPE}" == "sun4" ) then
setenv GREP "/usr/xpg4/bin/grep"
# set floppy_path = "/floppy/floppy0"
set bin_file_type = "ELF 32-bit MSB executable"
set init_d_dir = "/etc/init.d"
else if ( "${HOSTTYPE}" == "i386-linux" ) then
setenv GREP "/bin/grep"
# set floppy_path = "/mnt/floppy/"
set bin_file_type = "ELF 32-bit LSB executable"
set kernel_release = `uname -r`
set init_d_dir = "/etc/rc.d/init.d"
else
echo "Illegal hosttype ${HOSTTYPE}."
exit 1
endif
#
# Clear old deployment.
#
if (-d ${deployment_dir}) then
echo "Deployment directory ${deployment_dir} already exists:clearing..."
rm -rf ${deployment_dir}
endif
#
# Create directory structure
#
echo "Creating directory structure..."
set dir_count = 0
set dir_list = "${deployment_dir} ${deployment_dir}/${init_d_dir} ${deployment_dprt_dir} ${deployment_bin_dir} ${deployment_dir}/dprt/tmp ${deployment_dir}/dprt/tmp/log_archive ${deployment_dir}/dprt/log ${deployment_dprt_dir}/config ${deployment_bin_dir}/scripts ${deployment_bin_dir}/ics_util/c/${HOSTTYPE} ${deployment_bin_dir}/ccd/misc/${HOSTTYPE} ${deployment_bin_dir}/javalib ${deployment_bin_dir}/lib/${HOSTTYPE} ${deployment_bin_dir}/autobooter/java ${deployment_bin_dir}/dprt/test ${deployment_bin_dir}/libdprt/object/test/${HOSTTYPE} ${deployment_wcs_bin_dir} ${deployment_dir}/dprt/tmp/wcs"
foreach libdprt_prefix ( ${libdprt_prefix_list} )
set dir_list = "${dir_list} ${deployment_bin_dir}/dprt/java/ngat/dprt/${libdprt_prefix} ${deployment_bin_dir}/libdprt/${libdprt_prefix}/test/${HOSTTYPE}"
end
foreach dir ( ${dir_list} )
mkdir -p ${dir}
if ($status != 0) then
echo "Failed to make directory ${dir}"
exit 2
endif
@ dir_count ++
end
echo "${dir_count} directories created."
#
# Copy jars
#
echo "Copying jars..."
set jar_list = "ngat_fits.jar ngat_math.jar ngat_math_test.jar ngat_message_base.jar ngat_message_inst_dp.jar ngat_net.jar ngat_util.jar ngat_util_logging.jar"
set jar_count = 0
foreach jar ( ${jar_list} )
echo "jar : ${jar}"
# copy jar to deployment location
cp ${dev_bin_dir}/javalib/${jar} ${deployment_bin_dir}/javalib
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${dev_bin_dir}/javalib/${jar} to ${deployment_bin_dir}/javalib"
exit 3
endif
# ident contents of jar
cd ${deployment_dir}
rm -rf ${deployment_tmp_dir}
mkdir ${deployment_tmp_dir}
cp ${dev_bin_dir}/javalib/${jar} ${deployment_tmp_dir}
cd ${deployment_tmp_dir}
jar xvf ${jar} > ${deployment_tmp_dir}/jar_output.txt
find . -name '*.class' -print > ${deployment_tmp_dir}/class_list.txt
foreach class ( `cat ${deployment_tmp_dir}/class_list.txt` )
( ident ${class} > ${deployment_tmp_dir}/ident.txt ) >& ${deployment_tmp_dir}/ident_error.txt
set ident_string = `cat ${deployment_tmp_dir}/ident.txt`
echo "${ident_string}" >>! ${deployment_tmp_dir}/ident_list.txt
end
if ( -r ${deployment_tmp_dir}/ident_list.txt) then
cat ${deployment_tmp_dir}/ident_list.txt >>! ${deployment_dprt_dir}/ident_list.txt
endif
# keep track of number of jars processed
@ jar_count ++
end
echo "${jar_count} jars copied."
#
# Java classes
#
echo "Copying Java class directories..."
set java_class_dir_list = "autobooter/java dprt/test dprt/java/ngat/dprt "
foreach libdprt_prefix ( ${libdprt_prefix_list} )
set java_class_dir_list = "${java_class_dir_list} dprt/java/ngat/dprt/${libdprt_prefix}"
end
set java_class_dir_count = 0
foreach java_class_dir ( ${java_class_dir_list} )
echo "Java class directory : ${java_class_dir}"
# copy java_class_dir to deployment location
cp ${dev_bin_dir}/${java_class_dir}/*.class ${deployment_bin_dir}/${java_class_dir}
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${dev_bin_dir}/${java_class_dir}/*.class to ${deployment_bin_dir}/${java_class_dir}"
exit 3
endif
# ident each file in dir
cd ${deployment_dir}
rm -rf ${deployment_tmp_dir}
mkdir ${deployment_tmp_dir}
cd ${deployment_bin_dir}
find ${java_class_dir} -name '*.class' -print > ${deployment_tmp_dir}/class_list.txt
foreach class ( `cat ${deployment_tmp_dir}/class_list.txt` )
( ident ${class} > ${deployment_tmp_dir}/ident.txt ) >& ${deployment_tmp_dir}/ident_error.txt
set ident_string = `cat ${deployment_tmp_dir}/ident.txt`
echo "${ident_string}" >>! ${deployment_tmp_dir}/ident_list.txt
end
if ( -r ${deployment_tmp_dir}/ident_list.txt) then
cat ${deployment_tmp_dir}/ident_list.txt >>! ${deployment_dprt_dir}/ident_list.txt
endif
# keep track of number of java_class_dirs processed
@ java_class_dir_count ++
end
echo "${java_class_dir_count} Java class directories copied."
#
# C libraries
#
echo "Copying C libraries..."
set clib_list = "libcfitsio.so libngatfits.so libngatutil.so libdprt_jni_general.so libccd_dprt.so libdprt_object.so libdprt_libfits.so liblt_filenames.so"
foreach libdprt_prefix ( ${libdprt_prefix_list} )
set clib_list = "${clib_list} libdprt_${libdprt_prefix}.so "
end
# ioo ccd_dprt if applicable
if( ${machine_name} == "datared" ) then
set clib_list = "${clib_list} libioo_ccd_dprt.so"
endif
set clib_count = 0
foreach clib ( ${clib_list} )
echo "C Library : ${clib}"
# copy clib to deployment location
cp ${dev_bin_dir}/lib/${HOSTTYPE}/${clib} ${deployment_bin_dir}/lib/${HOSTTYPE}/
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${dev_bin_dir}/lib/${HOSTTYPE}/${clib} to ${deployment_bin_dir}/lib/${HOSTTYPE}/"
exit 5
endif
# ident contents of lib
cd ${deployment_dir}
rm -rf ${deployment_tmp_dir}
mkdir ${deployment_tmp_dir}
cd ${deployment_bin_dir}
( ident lib/${HOSTTYPE}/${clib} > ${deployment_tmp_dir}/ident.txt ) >& ${deployment_tmp_dir}/ident_error.txt
set ident_string = `cat ${deployment_tmp_dir}/ident.txt`
echo "${ident_string}" >>! ${deployment_tmp_dir}/ident_list.txt
if ( -r ${deployment_tmp_dir}/ident_list.txt) then
cat ${deployment_tmp_dir}/ident_list.txt >>! ${deployment_dprt_dir}/ident_list.txt
endif
# keep track of number of clibs processed
@ clib_count ++
end
echo "${clib_count} C libraries copied."
#
# C test programs to /dprt path
#
echo "Copying C test program directories..."
set dir_list = "ics_util/c/${HOSTTYPE} ccd/misc/${HOSTTYPE} libdprt/object/test/${HOSTTYPE}"
foreach libdprt_prefix ( ${libdprt_prefix_list} )
set dir_list = "${dir_list} libdprt/${libdprt_prefix}/test/${HOSTTYPE}"
end
set dir_count = 0
set file_count = 0
# clean out deployment_tmp_dir
cd ${deployment_dir}
rm -rf ${deployment_tmp_dir}
mkdir ${deployment_tmp_dir}
cd ${deployment_bin_dir}
# go through directory list
foreach dir ( ${dir_list} )
echo "C test program directory : ${dir}"
# get file list
find ${dev_bin_dir}/${dir}/* > ${deployment_tmp_dir}/file_list.txt
foreach file ( `cat ${deployment_tmp_dir}/file_list.txt` )
# check file is an executable
file ${file} | ${GREP} -q "${bin_file_type}"
set grep_status = $status
if ( ${grep_status} == 0 ) then
echo "Deploying ${file}."
# copy file to deployment location
cp ${file} ${deployment_bin_dir}/${dir}
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${file} to ${deployment_bin_dir}/${dir}"
exit 6
endif
# ident file and add to list
( ident ${dir}/${file:t} > ${deployment_tmp_dir}/ident.txt ) >& ${deployment_tmp_dir}/ident_error.txt
set ident_string = `cat ${deployment_tmp_dir}/ident.txt`
echo "${ident_string}" >>! ${deployment_tmp_dir}/ident_list.txt
@ file_count ++
else
echo "NOT Deploying ${file}."
endif
end
rm -f ${deployment_tmp_dir}/file_list.txt
# keep track of number of dirs processed
@ dir_count ++
end
if ( -r ${deployment_tmp_dir}/ident_list.txt) then
cat ${deployment_tmp_dir}/ident_list.txt >>! ${deployment_dprt_dir}/ident_list.txt
endif
cd ${deployment_dir}
rm -rf ${deployment_tmp_dir}
echo "${dir_count} C test program directories copied, containg ${file_count} C test programs."
#
# C test programs to wcs_fit path
#
echo "Copying C wcs_fit program directories..."
set dir_list = "dprt/wcs_fit/${HOSTTYPE}"
set dir_count = 0
set file_count = 0
# clean out deployment_tmp_dir
cd ${deployment_dir}
rm -rf ${deployment_tmp_dir}
mkdir ${deployment_tmp_dir}
cd ${deployment_bin_dir}
# go through directory list
foreach dir ( ${dir_list} )
echo "C test program directory : ${dir}"
# get file list
find ${dev_bin_dir}/${dir}/* > ${deployment_tmp_dir}/file_list.txt
foreach file ( `cat ${deployment_tmp_dir}/file_list.txt` )
# check file is an executable
file -L ${file} | ${GREP} -q "${bin_file_type}"
set grep_status = $status
if ( ${grep_status} == 0 ) then
echo "Deploying ${file}."
# copy file to deployment location
cp ${file} ${deployment_wcs_bin_dir}
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${file} to ${deployment_wcs_bin_dir}"
exit 6
endif
# ident file and add to list
( ident ${dir}/${file:t} > ${deployment_tmp_dir}/ident.txt ) >& ${deployment_tmp_dir}/ident_error.txt
set ident_string = `cat ${deployment_tmp_dir}/ident.txt`
echo "${ident_string}" >>! ${deployment_tmp_dir}/ident_list.txt
@ file_count ++
else
echo "NOT Deploying ${file}."
endif
end
rm -f ${deployment_tmp_dir}/file_list.txt
# keep track of number of dirs processed
@ dir_count ++
end
if ( -r ${deployment_tmp_dir}/ident_list.txt) then
cat ${deployment_tmp_dir}/ident_list.txt >>! ${deployment_dprt_dir}/ident_list.txt
endif
cd ${deployment_dir}
rm -rf ${deployment_tmp_dir}
echo "${dir_count} C wcs_fit program directories copied, containg ${file_count} C wcs_fit programs."
#
# Scripts
#
echo "Copying bin scripts..."
set file_list = "scripts/killhup.csh scripts/fuser_check"
set file_count = 0
cd ${dev_dir}
foreach file ( ${file_list} )
set new_file = `echo ${file} | sed "s#${machine_name}\.##" | sed "s#${HOSTTYPE}\.##"`
cp ${dev_bin_dir}/${file} ${deployment_bin_dir}/${new_file}
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${dev_bin_dir}/${file} to ${deployment_bin_dir}/${new_file}"
exit 4
endif
@ file_count ++
end
echo "${file_count} scripts copied to bin dir."
#
# Scripts to wcs_fit path
#
echo "Copying wcs_fit scripts..."
set file_list = "dprt/wcs_fit/${HOSTTYPE}/blank_wcs_fit dprt/wcs_fit/${HOSTTYPE}/get_local_usnob.csh dprt/wcs_fit/${HOSTTYPE}/rd.awk dprt/wcs_fit/${HOSTTYPE}/tostartab_hhmmss.sh dprt/wcs_fit/${HOSTTYPE}/wcs_fit dprt/wcs_fit/${HOSTTYPE}/remove_wcs.csh dprt/wcs_fit/${HOSTTYPE}/cds_extract_mags.awk dprt/wcs_fit/${HOSTTYPE}/cds_extract_mags_2.awk dprt/wcs_fit/${HOSTTYPE}/convert_cds_starb_1.awk"
set file_count = 0
cd ${dev_dir}
foreach file ( ${file_list} )
cp ${dev_bin_dir}/${file} ${deployment_wcs_bin_dir}
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${dev_bin_dir}/${file} to ${deployment_wcs_bin_dir}"
exit 4
endif
@ file_count ++
end
echo "${file_count} scripts copied to wcs_fit dir."
#
# Configs
#
# in bin sub-directories
echo "Copying machine configuration files..."
set file_list = "autobooter/java/${machine_name}.autobooter.properties"
if( ${machine_name} == "datared" ) then
set file_list = "${file_list} dprt/java/${machine_name}.ratcam.dprt.properties dprt/java/${machine_name}.o.dprt.properties"
else
set file_list = "${file_list} dprt/java/${machine_name}.dprt.properties"
endif
set file_count = 0
cd ${dev_dir}
foreach file ( ${file_list} )
set new_file = `echo ${file} | sed "s#${machine_name}.##"`
cp ${dev_bin_dir}/${file} ${deployment_bin_dir}/${new_file}
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${dev_bin_dir}/${file} to ${deployment_bin_dir}/${new_file}"
exit 5
endif
@ file_count ++
end
echo "${file_count} configs copied to bin dir."
# to wcs_fit dir
echo "Copying wcs_fit configuration files..."
set file_list = "astrom_pipe.sex.datared astrom_pipe.param"
set file_count = 0
cd ${dev_dir}
foreach file ( ${file_list} )
set new_file = `echo ${file} | sed "s#.${machine_name}##"`
cp ${dev_bin_dir}/dprt/wcs_fit/${HOSTTYPE}/${file} ${deployment_dir}/dprt/wcs_fit/bin/${new_file}
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${dev_bin_dir}/dprt/wcs_fit/${HOSTTYPE}/${file} to ${deployment_dir}/dprt/wcs_fit/bin/${new_file}"
exit 5
endif
@ file_count ++
end
echo "${file_count} configs copied to wcs_fit dir."
#
# /etc init scripts
#
echo "Copying Autobooter initialisation script."
set from_file = "${dev_bin_dir}/autobooter/java/${machine_name}.autobooter"
set to_file = "${deployment_dir}${init_d_dir}/autobooter"
cp ${from_file} ${to_file}
set cp_status = $status
if( ${cp_status} != 0 ) then
echo "Copy failed: ${from_file} to ${to_file}"
exit 6
endif
#
# Tidy deployment temp
#
cd ${deployment_dir}
rm -rf ${deployment_tmp_dir}
#
# Create deployment tar
#
echo "--------------------------"
echo "Creating deployment tar..."
cd ${deployment_dir}
tar cvf ${deployment_tar_dir}/${deployment_tar} .
echo "GZipping deployment tar..."
cd ${deployment_tar_dir}
rm -f ${deployment_tar}.gz
gzip ${deployment_tar}
echo "Deployment tar : ${deployment_tar_dir}/${deployment_tar}.gz"
echo "Installation script : ${current_dir}/${install_script}"
rm -rf ${deployment_dir}
echo "Download from http://ltdevsrv.livjm.ac.uk/~dev/dprt/deployment/index.html."
echo "Download ${deployment_tar}.gz ${install_script} dprt_cshrc dprt_cshrc_edit.awk"
echo "Deployment ready."
#
# $Log: not supported by cvs2svn $
# Revision 1.2 2010/03/12 14:49:04 cjm
# Added new scripts required by RKS wcs_fit.
#
# Revision 1.1 2009/03/13 15:33:56 cjm
# Initial revision
#
#