]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
CCAR: modify the runSession script so that it is able to connect to a remote SALOME
authorcaremoli <caremoli>
Tue, 15 Sep 2009 14:26:11 +0000 (14:26 +0000)
committercaremoli <caremoli>
Tue, 15 Sep 2009 14:26:11 +0000 (14:26 +0000)
session given by the machine name and the port number

bin/appliskel/runSession

index 716fbe6d9d843a29eb0a8c7d3063ba5df3eab608..ba6019c7926c8e2ee3079aa9247643a90b120ac6 100755 (executable)
 
 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`
@@ -36,32 +69,47 @@ export APPLI=`${APPLI_HOME}/getAppliPath.py`
 
 . ${HOME}/${APPLI}/envd ${HOME}/${APPLI}
 
-if test "x$1" == "xNSPORT"; then
-  NSPORT=$2
-  export NSPORT
-  myhost=`hostname`
-  OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_${myhost}_${NSPORT}.cfg
-  export OMNIORB_CONFIG
-  NSHOST=${myhost}
-  export NSHOST
-  shift 2
-else
-
-  # --- set omniORB configuration to current session if any
-
-  fileOmniConfig=${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg
-
-  if [ -f $fileOmniConfig ]; then
-    OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg
+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
+      OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg
+      export OMNIORB_CONFIG
+      # --- set environment variables for port and hostname of NamingService
+      NSHOST=`${KERNEL_ROOT_DIR}/bin/salome/NSparam.py host`
+      NSPORT=`${KERNEL_ROOT_DIR}/bin/salome/NSparam.py port`
+      export NSPORT
+      export NSHOST
+    fi
+  else
+    #MACHINE is given PORT is not given
+    NSPORT=2810
+    OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_${NSHOST}_${NSPORT}.cfg
     export OMNIORB_CONFIG
-
-    # --- 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`
+    #if omniorb config file exists do not override (perhaps too conservative)
+    if [ ! -f ${OMNIORB_CONFIG} ]; then
+      echo "InitRef = NameService=corbaname::${NSHOST}:${NSPORT}" > ${OMNIORB_CONFIG}
+    fi
     export NSPORT
+    export NSHOST
+  fi
+else
+  #PORT is given
+  if test "x${NSHOST}" == "xlocalhost"; then
+    #MACHINE is not given PORT is given
+    NSHOST=`hostname`
+  fi
+  OMNIORB_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_${NSHOST}_${NSPORT}.cfg
+  export OMNIORB_CONFIG
+  #if omniorb config file exists do not override (perhaps too conservative)
+  if [ ! -f ${OMNIORB_CONFIG} ]; then
+    echo "InitRef = NameService=corbaname::${NSHOST}:${NSPORT}" > ${OMNIORB_CONFIG}
   fi
+  export NSPORT
+  export NSHOST
 fi
 
 # --- invoke shell with or without args