Files
sics/site_ansto/instrument/deploySICS.sh
Ferdi Franceschini 01be487c52 pelican
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
2012-11-15 13:40:07 +11:00

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