Create pas/config/source/source.tcl config/source/source_common.tcl pelican_configuration.tcl deploySICS.sh Don't deploy script validator configs, they are obsolete server_config.tcl Source config has been moved to config/source and is specialised for each instrument by calling the instrument specific initialiser ::source:isc_initalize commands_common_1.tcl The monitor mode and preset are recorded when running the count command counter_common_1.tcl Report and record the counts and time for the multicounter and each monitor. Also record the mode and preset for the multicounter. hmm_configuration_common_1.tcl Cleanup, remove obsolete code. Report and record the hmm total counts and time. Allow monitor controlled acquisition from the histogram server nxscripts_common_1.tcl Add DataType to NXdata section, preserve case in text attributes. scan_common_1.tcl Provide sensible feedback for our bmonscan and hmscan objects. Set run_mode when doing a scan. Allow users to select the datatype for histmem scans and to force a scan wombat_configuration.tcl echidna_configuration.tcl platypus_configuration.tcl kowari_configuration.tcl quokka_configuration.tcl Load source config. quokka_configuration.tcl SICS-198 HACK, Add AttrotDeg and RotApDeg status feedback. sans/commands/commands.tcl Add status feedback for quokka "guide" command. sans/parameters/parameters.tcl Make sure data can be saved as xml (replace % with _percent) SICS-198 HACK, add AttRotDeg and RotApDeg status feedback. utility.tcl Fix nasty "params array generator" bug. SICS commands execute at runlevel 0 which means that the params anonymous array must be made at this level. Provide the normalattlist command to enable creating attribute lists with the case preserved. Added the runsics, runtestsics and sicsclient scripts to CVS. Added source configurations for echidna, wombat, kowari, quokka, platypus, and pelican to CVS r2644 | ffr | 2008-07-11 11:09:57 +1000 (Fri, 11 Jul 2008) | 53 lines
221 lines
6.2 KiB
Bash
Executable File
221 lines
6.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# $Revision: 1.28 $
|
|
# $Date: 2008-07-11 01:09:56 $
|
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
|
# Last revision by $Author: ffr $
|
|
|
|
# Deploys SICServer and configuration files to
|
|
# an instrument control computer.
|
|
# It requires a MANIFEST.TXT file for each instrument
|
|
|
|
# INSTCFCOMMON.TXT file contains paths to the common configuration files
|
|
# used by the instrument specific configurations, it should be placed in
|
|
# the 'config' directory for each instrument. The paths are relative
|
|
# to the instrument source directory. This file is optional.
|
|
|
|
usage()
|
|
{
|
|
cat <<EOF
|
|
deploySICS.sh copies SICS and the files listed
|
|
in the MANIFEST.TXT files to the IC host.
|
|
Usage:
|
|
./deploySICS.sh [-n] INSTRUMENT [TARGET_HOST [TARGET_DIR]]
|
|
where
|
|
-n if present inhibits the actual deployment (for testing the script)
|
|
INSTRUMENT can be hrpd, echidna, hipd, wombat, ... (not "./xxx")
|
|
or test/INSTRUMENT or INSTRUMENT/test for test deployment
|
|
TARGET_HOST can be a remote host or 'localhost'
|
|
defaults to ics1-<instrument>.nbi... or ics1-test.nbi... for test
|
|
TARGET_DIR is the top part of the directory tree
|
|
defaults to /usr/local or /usr/local/TEST_SICS/<instrument> for test
|
|
tail directories in TARGET_DIR will be created on TARGET_HOST if necessary.
|
|
Examples:
|
|
./deploySICS.sh -n echidna
|
|
prepares deployment of echidna (./hrpd)
|
|
to directory /usr/local/sics on isc1-echidna.nbi.ansto.gov.au
|
|
./deploySICS.sh -n reflectometer/test
|
|
prepares deployment of platypus (./reflectometer)
|
|
to directory usr/local/TEST_SICS/platypus on isc1-test.nbi.ansto.gov.au
|
|
./deploySICS.sh -n test/echidna localhost $HOME
|
|
prepares deployment of echidna (./hrpd)
|
|
to directory $HOME/TEST_SICS/echidna on localhost
|
|
EOF
|
|
}
|
|
|
|
# Copy sics server configuration files to a given destination
|
|
# Usage: copy_server_config SERVER_DIRECTORY
|
|
copy_server_config() {
|
|
sicserver_path=$1
|
|
cp -a --preserve=timestamps $COMMON $INSTSPEC $TEMPDIR/$DESTDIR/$sicserver_path
|
|
if [ -e $INSTCFDIR/INSTCFCOMMON.TXT ]; then
|
|
for f in $(cat $INSTCFDIR/INSTCFCOMMON.TXT); do
|
|
cp --parents --preserve=timestamps $f $TEMPDIR/$DESTDIR/$sicserver_path
|
|
done
|
|
fi
|
|
}
|
|
|
|
shopt -s nocasematch
|
|
|
|
if [[ "$1" = "-n" ]]
|
|
then
|
|
DEPLOY="NO"
|
|
shift
|
|
else
|
|
DEPLOY="YES"
|
|
fi
|
|
|
|
if [[ "$1" = "-x" ]]
|
|
then
|
|
EXEONLY="YES"
|
|
EXEPATH="/sics/server/SICServer"
|
|
shift
|
|
else
|
|
EXEONLY="NO"
|
|
EXEPATH=""
|
|
fi
|
|
|
|
if [ $# -eq 0 -o $# -gt 3 ]
|
|
then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
TESTING=$(dirname "$1")
|
|
INSTRUMENT=$(basename "$1")
|
|
if [[ "$INSTRUMENT" = "test" ]]
|
|
then
|
|
TESTING=$(basename "$1")
|
|
INSTRUMENT=$(dirname "$1")
|
|
fi
|
|
|
|
SRCDIR="."
|
|
TEMPDIR=$HOME/tmp
|
|
|
|
|
|
|
|
# Set the destination host
|
|
# instrument name and the
|
|
# instrument src directory
|
|
|
|
case $INSTRUMENT in
|
|
echidna|hrpd)
|
|
INSTRUMENT=echidna
|
|
DESTHOST=${2:-ics1-echidna.nbi.ansto.gov.au}
|
|
INSTSRC=$SRCDIR/hrpd;;
|
|
wombat|hipd)
|
|
INSTRUMENT=wombat
|
|
DESTHOST=${2:-ics1-wombat.nbi.ansto.gov.au}
|
|
INSTSRC=$SRCDIR/hipd;;
|
|
koala|qld)
|
|
INSTRUMENT=koala
|
|
DESTHOST=${2:-ics1-koala.nbi.ansto.gov.au}
|
|
INSTSRC=$SRCDIR/qld;;
|
|
platypus|reflectometer)
|
|
INSTRUMENT=platypus
|
|
DESTHOST=${2:-ics1-platypus.nbi.ansto.gov.au}
|
|
INSTSRC=$SRCDIR/reflectometer;;
|
|
kowari|rsd)
|
|
INSTRUMENT=kowari
|
|
DESTHOST=${2:-ics1-kowari.nbi.ansto.gov.au}
|
|
INSTSRC=$SRCDIR/rsd;;
|
|
quokka|sans)
|
|
INSTRUMENT=quokka
|
|
DESTHOST=${2:-ics1-quokka.nbi.ansto.gov.au}
|
|
INSTSRC=$SRCDIR/sans;;
|
|
pelican|pas)
|
|
INSTRUMENT=pelican
|
|
DESTHOST=${2:-ics1-pelican.nbi.ansto.gov.au}
|
|
INSTSRC=$SRCDIR/pas;;
|
|
taipan|tas)
|
|
INSTRUMENT=taipan
|
|
DESTHOST=${2:-ics1-taipan.nbi.ansto.gov.au}
|
|
INSTSRC=$SRCDIR/tas;;
|
|
esac
|
|
INSTCFDIR=$INSTSRC/config
|
|
|
|
make -C ../ $INSTRUMENT || exit $?
|
|
|
|
if [[ "$TESTING" = "test" ]]
|
|
then
|
|
DESTHOST=${2:-ics1-test.nbi.ansto.gov.au}
|
|
DESTDIR=${3:-/usr/local}/TEST_SICS/$INSTRUMENT
|
|
TARDIR=${DESTDIR:1}
|
|
# remove and recreate the temporary directory
|
|
rm -fr $TEMPDIR/$DESTDIR
|
|
mkdir -p $TEMPDIR/$DESTDIR
|
|
#copy TEST_SICS/fakeDMC and remove CVS any directories
|
|
cp -a $SRCDIR/TEST_SICS/* $TEMPDIR/$DESTDIR
|
|
rm -fr $(find $TEMPDIR/$DESTDIR -name CVS)
|
|
# step down to the sics directory
|
|
DESTDIR=$DESTDIR/sics
|
|
mkdir -p $TEMPDIR/$DESTDIR
|
|
else
|
|
DESTDIR=${3:-/usr/local}/sics
|
|
TARDIR=${DESTDIR:1}
|
|
# remove and recreate the temporary directory
|
|
rm -fr $TEMPDIR/$DESTDIR
|
|
mkdir -p $TEMPDIR/$DESTDIR
|
|
fi
|
|
|
|
echo "Deploying $INSTRUMENT to $DESTHOST:$DESTDIR"
|
|
|
|
|
|
if [[ "$DESTHOST" = "localhost" ]]
|
|
then
|
|
EXTRACT="tar vxzp -C /"
|
|
EXTRACT_NODEPLOY="tar vxzp -C /"
|
|
else
|
|
EXTRACT="ssh $DESTHOST sg sics -c tar\ vxzp\ -C\ /"
|
|
EXTRACT_NODEPLOY="ssh $DESTHOST sg sics -c \"tar\ vxzp\ -C\ /\""
|
|
fi
|
|
|
|
if [ ! -e $SRCDIR/MANIFEST.TXT ]
|
|
then
|
|
echo "$SRCDIR/MANIFEST.TXT not found"
|
|
exit 1
|
|
fi
|
|
if [ ! -e $SRCDIR/$INSTSRC/MANIFEST.TXT ]
|
|
then
|
|
echo "$SRCDIR/$INSTSRC/MANIFEST.TXT not found"
|
|
echo "You must list the files required for $INSTRUMENT in the manifest"
|
|
exit 1
|
|
fi
|
|
|
|
# Get list of files to copy and prepend directory name
|
|
COMMON=$(for f in $(cat $SRCDIR/MANIFEST.TXT); do echo -n "$SRCDIR/$f "; done)
|
|
INSTSPEC=$(for f in $(cat $INSTSRC/MANIFEST.TXT); do echo -n "$INSTSRC/$f "; done)
|
|
|
|
# Create Instrument Control Server directories and copy SICS configs to the 'server' directory
|
|
mkdir -p $TEMPDIR/$DESTDIR/{batch,server,log,tmp}
|
|
copy_server_config server
|
|
cp -a --preserve=timestamps ../SICServer $TEMPDIR/$DESTDIR/server
|
|
|
|
# Create Script Validator directories
|
|
mkdir -p $TEMPDIR/$DESTDIR/script_validator/{data,log,tmp}
|
|
|
|
# Create a manifest of the files installed on the IC host
|
|
echo "Date: $(date -Iminutes)" > $TEMPDIR/$DESTDIR/server/MANIFEST.TXT
|
|
echo -e "The following files were installed by $USER\n" >> $TEMPDIR/$DESTDIR/server/MANIFEST.TXT
|
|
cat $SRCDIR/MANIFEST.TXT $SRCDIR/$INSTSRC/MANIFEST.TXT >> $TEMPDIR/$DESTDIR/server/MANIFEST.TXT
|
|
|
|
cd $TEMPDIR
|
|
# remove any CVS directories
|
|
rm -rf $(find $TARDIR -type d -name CVS)
|
|
# remove any temporary editor files
|
|
find $TARDIR -type f -name .\*.sw\? -exec rm {} \;
|
|
# remove any editor backup files directories
|
|
find $TARDIR -type f -name \*~ -exec rm {} \;
|
|
# set modes for files
|
|
find $TARDIR -type f -exec chmod u-s,g-x+wr,o-wx+r {} \;
|
|
find $TARDIR -type f -perm -100 -exec chmod go+x {} \;
|
|
# set modes for directories
|
|
find $TARDIR -type d -exec chmod u+rwx,g+rwxs,o-w+rx {} \;
|
|
|
|
# Strip leading / from DESTDIR and extract to destination
|
|
if [[ "$DEPLOY" = "YES" ]]
|
|
then
|
|
tar -cz ${TARDIR}${EXEPATH} | $EXTRACT
|
|
else
|
|
echo "tar -cz -C $TEMPDIR $TARDIR${EXEPATH} | $EXTRACT_NODEPLOY"
|
|
fi
|