2013-08-29 15:21:13 +01:00
|
|
|
#!/bin/sh
|
|
|
|
#
|
|
|
|
# Copyright 2005-2013 the Boeing Company.
|
|
|
|
# See the LICENSE file included in this distribution.
|
|
|
|
#
|
|
|
|
|
|
|
|
#
|
|
|
|
# Copyright 2004-2008 University of Zagreb, Croatia.
|
|
|
|
#
|
|
|
|
# Redistribution and use in source and binary forms, with or without
|
|
|
|
# modification, are permitted provided that the following conditions
|
|
|
|
# are met:
|
|
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
|
|
# notice, this list of conditions and the following disclaimer.
|
|
|
|
# 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
|
|
# documentation and/or other materials provided with the distribution.
|
|
|
|
#
|
|
|
|
# THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
|
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
# SUCH DAMAGE.
|
|
|
|
#
|
|
|
|
# This work was supported in part by Croatian Ministry of Science
|
|
|
|
# and Technology through the research contract #IP-2003-143.
|
|
|
|
#
|
|
|
|
case $1 in
|
|
|
|
-h | --help)
|
|
|
|
echo ""
|
2013-12-18 18:10:19 +00:00
|
|
|
echo "Usage: `basename $0` [-h|-v] [-b|-c <sessionid>] [-s] [-a address] [-p port]"
|
|
|
|
echo " [<configfile.imn>]"
|
2013-08-29 15:21:13 +01:00
|
|
|
echo ""
|
|
|
|
echo "Launches the CORE Tcl/Tk X11 GUI or starts an imn-based emulation."
|
|
|
|
echo ""
|
2013-12-18 18:10:19 +00:00
|
|
|
echo " -(-h)elp show help message and exit"
|
2013-08-29 15:21:13 +01:00
|
|
|
echo " -(-v)ersion show version number and exit"
|
2013-12-18 18:10:19 +00:00
|
|
|
echo " -(-b)atch batch mode (no X11 GUI)"
|
2013-08-29 15:21:13 +01:00
|
|
|
echo -n " -(-c)losebatch <sessionid> stop and clean up a batch mode "
|
|
|
|
echo "session <sessionid>"
|
2013-12-18 18:10:19 +00:00
|
|
|
echo " -(-s)tart start in execute mode, not edit mode"
|
|
|
|
echo " -(-a)ddress connect to the specified IP address (default 127.0.0.1)"
|
|
|
|
echo " -(-p)port connect to the specified TCP port (default 4038)"
|
2013-08-29 15:21:13 +01:00
|
|
|
echo " <configfile.imn> (optional) load the specified imn scenario file"
|
|
|
|
echo ""
|
|
|
|
echo "With no parameters, starts the GUI in edit mode with a blank canvas."
|
|
|
|
echo ""
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
-v | --version)
|
|
|
|
exec echo "`basename $0` version @CORE_VERSION@ (@CORE_VERSION_DATE@)"
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
SHELL=/bin/sh
|
|
|
|
export SHELL
|
|
|
|
|
|
|
|
export LIBDIR="@CORE_LIB_DIR@"
|
|
|
|
export SBINDIR="@SBINDIR@"
|
|
|
|
# eval is used here to expand "~" to user's home dir
|
|
|
|
if [ x$CONFDIR = x ]; then export CONFDIR=`eval "echo @CORE_GUI_CONF_DIR@"` ; fi
|
|
|
|
export CORE_STATE_DIR="@CORE_STATE_DIR@"
|
|
|
|
export CORE_DATA_DIR="@CORE_DATA_DIR@"
|
|
|
|
export CORE_USER=`id -u -n`
|
|
|
|
export CORE_START_DIR=$PWD
|
|
|
|
|
|
|
|
init_conf_dir() {
|
|
|
|
echo "Setting up user config area $CONFDIR, $CONFDIR/configs, and "
|
|
|
|
echo " $CONFDIR/myservices"
|
|
|
|
mkdir -p $CONFDIR
|
|
|
|
if [ $? != 0 ]; then echo "error making directory $CONFDIR!"; fi
|
|
|
|
mkdir -p $CONFDIR/configs
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "error making directory $CONFDIR/configs!";
|
|
|
|
else
|
|
|
|
cp -a $CORE_DATA_DIR/examples/configs/* $CONFDIR/configs/
|
|
|
|
fi
|
|
|
|
mkdir -p $CONFDIR/myservices
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "error making directory $CONFDIR/myservices!";
|
|
|
|
else
|
|
|
|
cp -a $CORE_DATA_DIR/examples/myservices/* $CONFDIR/myservices/
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
cd $LIBDIR
|
|
|
|
|
|
|
|
core=$LIBDIR/core.tcl
|
|
|
|
|
|
|
|
# locate wish8.5 binaries
|
2013-10-09 20:57:45 +01:00
|
|
|
WISHLIST="/usr/bin/wish8.6 /usr/local/bin/wish8.5 /usr/bin/wish8.5"
|
2013-08-29 15:21:13 +01:00
|
|
|
for wishbin in $WISHLIST
|
|
|
|
do
|
|
|
|
if [ -x $wishbin ]
|
|
|
|
then
|
|
|
|
WISH=$wishbin;
|
|
|
|
break;
|
|
|
|
fi;
|
|
|
|
done;
|
|
|
|
|
|
|
|
if [ a$WISH = a ]
|
|
|
|
then
|
|
|
|
echo "CORE could not locate the Tcl/Tk binary (wish8.5)."
|
|
|
|
exit 1;
|
|
|
|
fi;
|
|
|
|
|
|
|
|
# create /home/user/.core directory if necessary
|
|
|
|
if [ ! -e $CONFDIR ]
|
|
|
|
then
|
|
|
|
init_conf_dir
|
|
|
|
fi;
|
|
|
|
|
|
|
|
# check for and fix write permissions on /home/user/.core directory
|
|
|
|
while [ ! -w $CONFDIR ];
|
|
|
|
do
|
|
|
|
echo " CORE requires write permissions to the '$CONFDIR'"
|
|
|
|
echo " configuration directory for the user '$CORE_USER',"
|
|
|
|
echo " would you like to fix this now [Y/n]?"
|
|
|
|
read yn
|
|
|
|
if [ "z$yn" = "zn" ]; then
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
echo -n " (sudo may prompt you for a password; if you do not have sudo set"
|
|
|
|
echo " up for the"
|
|
|
|
echo " user '$CORE_USER', su to root and run this command:"
|
|
|
|
echo " chown -R $CORE_USER $CONFDIR )"
|
|
|
|
sudo chown -R $U $CONFDIR
|
|
|
|
sudo chmod -R u+w $CONFDIR
|
|
|
|
done
|
|
|
|
|
|
|
|
# GUI config directory should not be a file (old prefs)
|
|
|
|
if [ ! -d $CONFDIR ]
|
|
|
|
then
|
|
|
|
|
|
|
|
mv $CONFDIR $CONFDIR.tmp
|
|
|
|
if [ $? != 0 ]; then echo "error moving $CONFDIR!"; exit 1; fi
|
|
|
|
init_conf_dir
|
|
|
|
echo "Old preferences file $CONFDIR has been moved to $CONFDIR/prefs.conf"
|
|
|
|
mv $CONFDIR.tmp $CONFDIR/prefs.conf
|
|
|
|
if [ $? != 0 ]; then echo "error moving $CONFDIR.tmp to $CONFDIR/prefs.conf!"; exit 1; fi
|
|
|
|
fi;
|
|
|
|
|
|
|
|
case $1 in
|
|
|
|
-b | --batch)
|
|
|
|
TCLBIN=`echo ${WISH} | sed s/wish/tclsh/g`
|
|
|
|
exec ${TCLBIN} $core "$@"
|
|
|
|
;;
|
|
|
|
-c | --closebatch)
|
|
|
|
TCLBIN=`echo ${WISH} | sed s/wish/tclsh/g`
|
|
|
|
exec ${TCLBIN} $core "$@"
|
|
|
|
;;
|
|
|
|
-s)
|
2013-12-18 18:10:19 +00:00
|
|
|
shift
|
|
|
|
exec ${WISH} $core -- "--start" "$@"
|
|
|
|
;;
|
|
|
|
-a)
|
|
|
|
shift
|
|
|
|
exec ${WISH} $core -- "--address" "$@"
|
|
|
|
;;
|
|
|
|
-p)
|
|
|
|
shift
|
|
|
|
exec ${WISH} $core -- "--port" "$@"
|
2013-08-29 15:21:13 +01:00
|
|
|
;;
|
|
|
|
*)
|
2013-12-18 18:10:19 +00:00
|
|
|
exec ${WISH} $core -- $@
|
2013-08-29 15:21:13 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
cd $CORE_START_DIR
|