Salome HOME
Porting to Python 2.6 - add coding page specification for Python scripts
[modules/kernel.git] / bin / runSalome.ksh
1 #!/bin/ksh
2 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
3 #
4 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 #
7 #  This library is free software; you can redistribute it and/or
8 #  modify it under the terms of the GNU Lesser General Public
9 #  License as published by the Free Software Foundation; either
10 #  version 2.1 of the License.
11 #
12 #  This library is distributed in the hope that it will be useful,
13 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 #  Lesser General Public License for more details.
16 #
17 #  You should have received a copy of the GNU Lesser General Public
18 #  License along with this library; if not, write to the Free Software
19 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
20 #
21 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 #
23
24
25 searchFreePort() {
26     echo -n "Searching for a free port for naming service: "
27     NSPORT=2810
28     export NSPORT
29     local limit=$NSPORT
30     let limit=limit+100
31     while [ 1 ]
32     do
33         aRes=`netstat -ltn | grep -E :${NSPORT}`
34         if [ -z "$aRes" ]; then
35             echo ${NSPORT} - Ok
36             local myhost=`hostname`
37             OMNIORB_CONFIG=${HOME}/.omniORB_${myhost}_${NSPORT}.cfg
38             export OMNIORB_CONFIG
39             local initref="NameService=corbaname::"`hostname`":$NSPORT"
40             export NSPORT
41             if [[ `python -c "import CORBA; print CORBA.ORB_ID"` = "omniORB4" ]]; then
42                 echo "InitRef = $initref" > $OMNIORB_CONFIG
43             else
44                 echo "ORBInitRef $initref" > $OMNIORB_CONFIG
45             fi
46             break
47         fi
48         echo -n "${NSPORT} "
49         if [[ $NSPORT -eq $limit ]] ; then
50             echo
51             echo "Can't find a free port to launch omniNames"
52             echo "Try to kill the running servers and then launch SALOME again."
53             exit
54         fi
55         let NSPORT=NSPORT+1
56     done
57 }
58
59 searchFreePort
60
61 if [[ "$*" = "-nothing" ]]; then
62     echo "port:$NSPORT"
63 elif [ $# -ne 0 ] ; then
64     python ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py $* 
65 else
66     python ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py
67 fi
68
69 # -----------------------------------------------------------------------------
70 # examples:
71 # ---------
72 #  $: ${KERNEL_ROOT_DIR}/bin/salome/runSalome
73 #
74 #     - parameters for launching are taken from SalomeApp.xml;
75 #     - if the config file does not exist, it is created with default values.
76 #
77 #  
78 #  $: ${KERNEL_ROOT_DIR}/bin/salome/runSalome --modules=GEOM,SMESH,VISU,MED --embedded=registry,study,moduleCatalog,cppContainer --standalone=pyContainer --xterm --killall
79 #
80 #     parameters from command line supersede those from SalomeApp.xml
81 #
82 # Some CORBA servers can be launched in the SALOME_Session_Server's process
83 # (embedded = same process) or in a separate process (standalone):
84 # --> registry,study,moduleCatalog,cppContainer
85 # Other CORBA servers could only be launched in separate process (standalone):
86 # --> pyContainer
87 #
88 # $: ${KERNEL_ROOT_DIR}/bin/salome/runSalome -h
89 #    help
90 # -----------------------------------------------------------------------------
91 #
92 # l'option -i permet de garder l'interpreteur python ouvert :
93 # par defaut, les differents serveurs ouvrent des fenĂȘtres xterm
94 # (cf. runSalome.py)
95 # le serveur Logger n'est pas obligatoire (commentĂ© dans runSalome.py)
96
97 # -----------------------------------------------------------------------------
98 # Example on CCRT (without ihm) :
99 # ${KERNEL_ROOT_DIR}/bin/salome/runSalome.py --terminal --modules=MED,CALCULATOR,COMPONENT --standalone=registry,study,moduleCatalog,cppContainer,pyContainer --killall