X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Fappliskel%2FrunSession;h=c6449dc248d8dc0af61fc3fde222e3f629487647;hb=0ac7e21b69c490761be2e69b935e3ba28ab517af;hp=2ab579ce6d80091da99e6d26e688f40944089969;hpb=1bd1d38e86c39b13e265f8ff534fc1463c25fef3;p=modules%2Fkernel.git diff --git a/bin/appliskel/runSession b/bin/appliskel/runSession index 2ab579ce6..c6449dc24 100755 --- a/bin/appliskel/runSession +++ b/bin/appliskel/runSession @@ -1,38 +1,128 @@ #!/bin/bash +# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE # +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + # Useful shell to run executable progs or shells under Salome env # Use it with args to run a program : runSession python -i myprog.py # Use it without args to run an interactive shell under Salome env -# -# --- retrieve APPLI path, relative to $HOME -# on sarge, "which" gives not allways the absolute path... - -comName=`which $0` -aa=${comName:0:1} -if test x$aa == x\/; then - mycom=${comName} -elif test x$aa == x\.; then - mycom=${PWD}/${comName:2} -else - mycom=${PWD}/${comName} -fi -APPLI=`echo ${HOME} \`dirname $mycom\` | awk ' { print substr($2,length($1)+2) } '` -echo $APPLI -export APPLI + +############################################### +############### IMPORTANT NOTE ################ +############################################### +# The runConsole script is obsolete. # +# Please consider the new salome.py launcher. # +############################################### + + +APPLI_HOME=`dirname $0` + +NSPORT=last +NSHOST=localhost + +usage() +{ + echo "Connect to a SALOME session (local or remote)" + echo "" + echo "Usage: $(basename $0) [ -p PORT ] [ -m MACHINE ] [ -h ] [command]" + echo "" + echo " -p PORT : The port to connect to " + echo " -m MACHINE : The machine to connect to " + echo " -h : Print this message" + echo " command : The command to execute in the SALOME session" + echo "" + echo "If the command is not given a shell is opened" + echo "If PORT and MACHINE are not given, try to connect to the last active session on the local machine" + echo "If PORT and MACHINE are given, try to connect to the remote session associated with PORT on MACHINE" + echo "If MACHINE is not given, try to connect to the session associated to PORT on the local machine" + echo "If PORT is not given, try to connect to the remote session associated to port 2810 on MACHINE" + echo "" +} + +while getopts 'm:p:h' OPTION + do + case $OPTION in + m)NSHOST="$OPTARG" ;; + p)NSPORT="$OPTARG" ;; + h|?) usage + exit 1 ;; + esac + done +shift $(($OPTIND - 1)) + +# --- retrieve APPLI path, relative to $HOME, set ${APPLI} + +export APPLI=`${APPLI_HOME}/getAppliPath.py` # --- set the SALOME environment (prerequisites, MODULES_ROOT_DIR...) . ${HOME}/${APPLI}/envd ${HOME}/${APPLI} -myhost=`hostname` -export OMNIORB_CONFIG=${HOME}/${APPLI}/.omniORB_${myhost}_last.cfg +# --- set the OMNIORB_CONFIG file and environment relative to this run of SALOME +# Usage: writeConfigFile PORT HOST +function writeConfigFile +{ + if [ $# -ne 2 ]; then + echo "Usage: $0 PORT HOST" + return + fi + export NSPORT=$1 + export NSHOST=$2 -# --- invoque shell with or without args + # Get (in bash) the configuration filename from (Python) ORBConfigFile return values + RETURN_VALUES=$(${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python ${KERNEL_ROOT_DIR}/bin/salome/ORBConfigFile.py ${HOME}/${APPLI}/USERS ${NSHOST} ${NSPORT} with_username=${USER}) + export OMNIORB_CONFIG=$(echo ${RETURN_VALUES} | cut -d' ' -f1) +} -if [ $# -ne 0 ] ; then - ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/bash --rcfile ${HOME}/${APPLI}/.bashrc -c "$*" + +if test "x${NSPORT}" == "xlast"; then + #PORT is not given + if test "x${NSHOST}" == "xlocalhost"; then + #MACHINE and PORT are not given + # --- set omniORB configuration to current session if any + fileOmniConfig=${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg + if [ -f $fileOmniConfig ]; then + export OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg + # --- set environment variables for port and hostname of NamingService + export NSHOST=`${KERNEL_ROOT_DIR}/bin/salome/NSparam.py host` + export NSPORT=`${KERNEL_ROOT_DIR}/bin/salome/NSparam.py port` + fi + else + #MACHINE is given PORT is not given + writeConfigFile 2810 ${NSHOST} + fi else + #PORT is given + if test "x${NSHOST}" == "xlocalhost"; then + #MACHINE is not given PORT is given + NSHOST=`hostname` + fi + writeConfigFile ${NSPORT} ${NSHOST} +fi + +# --- invoke shell with or without args - ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/bash --rcfile ${HOME}/${APPLI}/.bashrc +if [ $# -ne 0 ] ; then + ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py -exec $* +else + ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/bash --rcfile ${HOME}/${APPLI}/.bashrc fi