]> SALOME platform Git repositories - modules/kernel.git/blob - bin/appliskel/searchFreePort.sh
Salome HOME
Add missing include directory for CMake compilation.
[modules/kernel.git] / bin / appliskel / searchFreePort.sh
1 #!/bin/bash
2 # Copyright (C) 2007-2013  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 # --- define port for CORBA naming service
25
26 DEFAULT=default
27
28 # call: searchFreePort [ save [test] ]
29 searchFreePort() {
30     # if not specified by optional first parameter, savemode is set to default
31     savemode=${1:-$DEFAULT}
32     # if not specified by optional second parameter, testmode is set to default
33     testmode=${2:-$DEFAULT}
34
35     echo -n "Searching for a free port for naming service: "
36     export NSPORT=2810
37     local limit=$NSPORT
38     let limit=limit+100
39
40     while [ 1 ]
41     do
42         aRes=`netstat -ltn | grep -E :${NSPORT}`
43         if [ -z "$aRes" ]; then
44             echo ${NSPORT} - Ok
45             export NSPORT
46             export NSHOST=`hostname`
47
48             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})
49             export OMNIORB_CONFIG=$(echo ${RETURN_VALUES} | cut -d' ' -f1)
50
51             if [ "$savemode" = save ]
52             then
53                 if [ "$testmode" = test ]
54                 then
55                     export LAST_RUNNING_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_${NSHOST}_test.cfg
56                 else
57                     export LAST_RUNNING_CONFIG=${HOME}/${APPLI}/USERS/.omniORB_${USER}_last.cfg
58                 fi
59
60                 rm ${LAST_RUNNING_CONFIG}
61                 ln -s ${OMNIORB_CONFIG} ${LAST_RUNNING_CONFIG}
62             fi
63
64             break
65         fi
66         echo -n "${NSPORT} "
67         if [[ $NSPORT -eq $limit ]] ; then
68             echo
69             echo "Can't find a free port to launch omniNames"
70             echo "Try to kill the running servers and then launch SALOME again."
71             exit
72         fi
73         let NSPORT=NSPORT+1
74     done
75 }