Files
sics/doc/manager/sicsinstall
2000-02-07 10:38:55 +00:00

222 lines
6.6 KiB
Bash
Executable File

#!/usr/bin/ksh
#----------------------------------------------------------------------------
# script for installing SICS software on to a system.
# The source of the data muste be visible to the filesystem.
# This script installs SW into directories beyond your current directory
# So, on an instrument account it would be feasible to run this from the
# home directory. The script checks if we are at home, else it will print
# a warning.
#
# this script understands a few arguments:
#
# dev - copies new executables from development area to
# distribution area
# devfull - copies all files from development area to
# distribution area
# dmc - installs all files for running dmc
# topsi - install all files for topsi
# sans - installs all files for sans
# doc - updates only the documentation
# exe - installs only new executables
# debug - copies only the server to current directory
# lib - copies clients from the distribution area to
# the common program library.
#
# Mark Koennecke, Juli 1998
#----------------------------------------------------------------------------
#=========================== data area ====================================
devdir=/data/koenneck/src/sics # development directory
disdir=/data/lnslib/src/sics # distribution directory
dirdir="bin data doc log" # SICS directories
bindir=/data/lnslib/bin # common directory for binaries
clients="sicsclient.jar powderstatus.jar sansstatus.jar topsistatus.jar"
#======================= Functions ========================================
#------------------ check if in home directory
checkhome() {
if [ $HOME != $(pwd) ]; then
echo "You are not in your home directory."
echo "This may cause a non standard SICS installation"
echo "Do you want me to continue(Y,y) or abort(any other character)"
read answer
if [ \( $answer = Y \) -o \( $answer = y \) ]; then
echo "OK, I start clobbering......"
else
echo "Script aborting........."
exit 0
fi
fi
}
#------------------- print usage
usage() {
echo "USAGE:"
echo "This script copies SICS software. You need to tell this program"
echo "what to do by specifying one of the keywords below:"
echo ""
echo "dev - copies new executables from development area to"
echo " distribution area (MK only)"
echo "devfull - copies all files from development area to"
echo " distribution area (MK only)"
echo "dmc - installs all files for running dmc"
echo "topsi - install all files for topsi"
echo "sans - installs all files for sans "
echo "doc - updates only the documentation"
echo "exe - installs only new executables"
echo "lib - copies new clients to common program area"
echo ""
echo "Mark Koennecke, LNS, Juli 1998"
}
#------------------ copy new executables
copydev () {
echo "Copying new executable files from development area to distribution.."
cp $devdir/SICServer $devdir/psish/psish $devdir/psish/pish $disdir/bin
for cl in $clients; do
cp $devdir/SicsClient/$cl $disdir/bin
done
cp $devdir/replicator/replicator.jar $disdir/bin
}
#------------------ copy to common program area
copylib() {
echo "Copying new client files to common LNS program area"
cp $disdir/bin/*.jar $bindir
}
#------------------ copy all new stuff
copydevfull () {
echo "Copying ALL files from development area to distribution.."
copydev
echo "Copying documentation"
cp $devdir/user/*.htm $disdir/doc
cp $devdir/user/*.html $disdir/doc
cp $devdir/user/*.ps $disdir/doc
cp $devdir/manager/*.htm $disdir/manager
}
#------------------ copy only new executables
copyexe () {
echo "Copying new executable files"
cp $disdir/bin/SICServer $disdir/bin/psish $disdir/bin/pish bin
for cl in $clients; do
cp $disdir/bin/$cl bin
done
cp $disdir/bin/sics bin
cp $disdir/bin/powderstatus bin
cp $disdir/bin/sansstatus bin
cp $disdir/bin/topsistatus bin
cp $disdir/bin/replicator.jar
}
#----------------- copy documentation
copydoc () {
echo "Copying documentation"
cp $disdir/doc/*.htm doc
cp $disdir/doc/*.html doc
cp $disdir/doc/*.ps doc
}
#----------------- DMC special files
copydmc () {
echo "Copying DMC special files"
cp $disdir/bin/count.tcl $disdir/bin/init.tcl \
$disdir/bin/log.tcl $disdir/bin/xydialog.tcl $disdir/bin/CheckSICS bin
cp $disdir/bin/dmc/* bin
if [ -e data/DataNumber ]; then
echo "DataNumber found, OK"
else
echo "WARNING: Creating new DataNumber file with 0, adjust as needed"
echo " 0" > data/DataNumber
fi
echo "Done, configuration files may need editing"
}
#----------------- TOPSI special files
copytopsi () {
echo "Copying TOPSI special files"
cp $disdir/bin/count.tcl $disdir/bin/init.tcl \
$disdir/bin/log.tcl $disdir/bin/CheckSICS bin
cp $disdir/bin/topsi/* bin
if [ -e data/DataNumber ]; then
echo "DataNumber found, OK"
else
echo "WARNING: Creating new DataNumber file with 0, adjust as needed"
echo " 0" > data/DataNumber
fi
echo "Done, configuration files may need editing"
}
#----------------- SANS special files
copysans() {
echo "Copying SANS special files"
cp $disdir/bin/count.tcl $disdir/bin/init.tcl \
$disdir/bin/log.tcl $disdir/bin/CheckSICS bin
cp $disdir/bin/sans/* bin
if [ -e data/DataNumber ]; then
echo "DataNumber found, OK"
else
echo "WARNING: Creating new DataNumber file with 0, adjust as needed"
echo " 0" > data/DataNumber
fi
echo "Done, configuration files may need editing"
}
#------------------ check SICS directories
checkdir() {
echo "Checking directory structure, creating as needed"
for dd in $dirdir; do
if [ -d $dd ]; then
echo "$dd present"
else
echo "Creating $dd"
mkdir $dd
fi
done
}
#-------------- the case for checking the command parameter
case ${1-nix} in
dev)
copydev
;;
devfull)
copydevfull
;;
exe)
checkhome
checkdir
copyexe
;;
doc)
checkhome
checkdir
copydoc
;;
dmc)
checkhome
checkdir
copyexe
copydoc
copydmc
;;
topsi)
checkhome
checkdir
copyexe
copydoc
copytopsi
;;
sans)
checkhome
checkdir
copyexe
copydoc
copysans
;;
lib)
copylib
;;
debug)
cp $devdir/SICServer .
;;
*)
usage
;;
esac
echo "sicsinstall finished with more or less success"