222 lines
6.6 KiB
Bash
Executable File
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"
|