X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Fappliskel%2FrunSession;h=c6449dc248d8dc0af61fc3fde222e3f629487647;hb=0ac7e21b69c490761be2e69b935e3ba28ab517af;hp=446ee605acc0f341ac639a0c6fbaf52da1bebc3c;hpb=f14439749926cca959747bb79fda10529520bd0b;p=modules%2Fkernel.git diff --git a/bin/appliskel/runSession b/bin/appliskel/runSession index 446ee605a..c6449dc24 100755 --- a/bin/appliskel/runSession +++ b/bin/appliskel/runSession @@ -1,12 +1,74 @@ #!/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 -# + + +############################################### +############### 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` @@ -15,27 +77,52 @@ export APPLI=`${APPLI_HOME}/getAppliPath.py` . ${HOME}/${APPLI}/envd ${HOME}/${APPLI} -# --- set omniORB configuration to current session if any - -fileOmniConfig=${HOME}/${APPLI}/.omniORB_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 -if [ -f $fileOmniConfig ]; then - OMNIORB_CONFIG=${HOME}/${APPLI}/.omniORB_last.cfg - export OMNIORB_CONFIG + # 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) +} - # --- set environment variables for port and hostname of NamingService - NSHOST=`${KERNEL_ROOT_DIR}/bin/salome/NSparam.py host` - export NSHOST - NSPORT=`${KERNEL_ROOT_DIR}/bin/salome/NSparam.py port` - export NSPORT +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 if [ $# -ne 0 ] ; then - ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py $* + ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py -exec $* else - - ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/bash --rcfile ${HOME}/${APPLI}/.bashrc + ${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/bash --rcfile ${HOME}/${APPLI}/.bashrc fi