forked from epics_driver_modules/require
100 lines
2.7 KiB
Bash
Executable File
100 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# This script should only be called by the ioc at boot time.
|
|
# The startup script should have the following line:
|
|
# bootNotify SLSBASE,"sls/bin/iocBootNotify.sh"
|
|
|
|
if [ "$1" = "-v" ]
|
|
then
|
|
echo '$Source: /cvs/G/DRV/misc/App/scripts/iocBootNotify.sh,v $'
|
|
echo '$Author: maden $'
|
|
echo '$Date: 2004/07/22 14:25:30 $'
|
|
exit
|
|
fi
|
|
|
|
if [ "$1" = "-h" ] || [ "$1" = "-?" ]
|
|
then
|
|
echo "Usage:" >&2
|
|
echo " iocBootNotify.sh \\" >&2
|
|
echo " <system> \\" >&2
|
|
echo " <ipaddr> \\" >&2
|
|
echo " <procnum> \\" >&2
|
|
echo " <device> \\" >&2
|
|
echo " <bootfile> \\" >&2
|
|
echo " <script> \\" >&2
|
|
echo " <vxworksver> \\" >&2
|
|
echo " <epicsver> \\" >&2
|
|
echo " <ethaddr>" >&2
|
|
exit 0
|
|
fi
|
|
|
|
if [ $# -lt 9 ] || [ "$1" = "-h" ] || [ "$1" = "-?" ]
|
|
then
|
|
echo "This script should only be called by an IOC at boot time!" >&2
|
|
echo "It needs 9 arguments." >&2
|
|
exit 1
|
|
fi
|
|
|
|
#. /etc/profile
|
|
|
|
SYSTEM=$1
|
|
IPADDR=$2
|
|
PROCNUM=$3
|
|
DEVICE=$4
|
|
BOOTFILE=$5
|
|
SCRIPT=$6
|
|
VXWORKSVER=${7#VxWorks}
|
|
EPICSVER=$8
|
|
ETHADDR=$9
|
|
if [ ! -L /ioc/$SYSTEM ]
|
|
then
|
|
echo "ERROR: $SYSTEM is not an existing system name."
|
|
echo "Rename 'target name' to your system name!"
|
|
exit 1
|
|
fi
|
|
case $SYSTEM in
|
|
( *-VME-* ) ;;
|
|
( * ) echo "ERROR: $SYSTEM is not an acceptable system name."
|
|
echo "Rename your system and 'target name' to match *-VME-*."
|
|
exit 1 ;;
|
|
esac
|
|
link=$(readlink /ioc/$SYSTEM)
|
|
SLSBASE=${link%%/iocBoot*}
|
|
BOOTPC=$(hostname -s)
|
|
if [ -L $BOOTFILE ]
|
|
then
|
|
link=$(readlink $BOOTFILE)
|
|
VXWORKS=$SLSBASE/${link##*../}
|
|
else
|
|
VXWORKS=$BOOTFILE
|
|
fi
|
|
|
|
echo "I will put the following values to the database:"
|
|
echo "SYSTEM=$SYSTEM"
|
|
echo "IPADDR=$IPADDR"
|
|
echo "PROCNUM=$PROCNUM"
|
|
echo "DEVICE=$DEVICE"
|
|
echo "BOOTPC=$BOOTPC"
|
|
echo "SLSBASE=$SLSBASE"
|
|
echo "BOOTFILE=$BOOTFILE"
|
|
echo "SCRIPT=$SCRIPT"
|
|
echo "VXWORKS=$VXWORKS"
|
|
echo "EPICSVER=$EPICSVER"
|
|
echo "VXWORKSVER=$VXWORKSVER"
|
|
echo "ETHADDR=$ETHADDR"
|
|
|
|
$SLSBASE/sls/bin/call_ioc_ins $SYSTEM $IPADDR $PROCNUM $DEVICE \
|
|
$BOOTPC $SLSBASE $BOOTFILE $SCRIPT $VXWORKS $EPICSVER \
|
|
$VXWORKSVER $ETHADDR
|
|
exit
|
|
#--------------------------------------------------#
|
|
# emacs setup - force text mode to prevent emacs #
|
|
# from helping with the indentation! #
|
|
# Local Variables: #
|
|
# mode:text #
|
|
# indent-tabs-mode:nil #
|
|
# End: #
|
|
#--------------------------------------------------#
|
|
#
|
|
#---------------------------------------- End of $RCSfile: iocBootNotify.sh,v $
|