]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
This file realise functionality instead runSalome (linux file)
authorabd <abd@opencascade.com>
Mon, 11 Sep 2006 05:38:10 +0000 (05:38 +0000)
committerabd <abd@opencascade.com>
Mon, 11 Sep 2006 05:38:10 +0000 (05:38 +0000)
bin/launchSalome.py [new file with mode: 0755]

diff --git a/bin/launchSalome.py b/bin/launchSalome.py
new file mode 100755 (executable)
index 0000000..cc90d3f
--- /dev/null
@@ -0,0 +1,92 @@
+from Utils_Identity import getShortHostName
+
+import socket
+import os
+import sys
+import shutil
+
+#####################################################################
+def findFreePort(startPort, step) :
+
+    currentPort = startPort;
+    if step < 1:
+        step = 1;
+
+    serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
+
+    portFound = 0;
+    while (portFound != 1 and currentPort < 65536):
+        try :
+            serversocket.bind((socket.gethostname(), currentPort));
+            portFound = 1;
+            print str(currentPort) + ": " + "OK";
+#            serversocket.shutdown(0);
+#            serversocket.close();
+        except Exception, inst:
+            print str(currentPort) + ": " + str(inst.args);
+            currentPort = currentPort+step;
+    
+    
+    
+    
+    if (portFound != 1) :
+        currentPort = -1;
+    return currentPort;
+#####################################################################
+
+
+
+## 1. Generate config file for omniORB:
+# content:
+# InitRef = NameService=corbaname::[HOST_NAME]:[PORT_NUMBER]
+
+freePort = findFreePort(2810, 1);
+hostName = socket.gethostname();
+
+if (len(sys.argv) > 1) and sys.argv[1] == "-nothing" :
+    print "port:" + str(freePort);
+    sys.exit(0)
+    
+
+        
+
+if freePort < 0 :
+    print
+    print "Can't find a free port to launch omniNames"
+    print "Try to kill the running servers and then launch SALOME again."
+    print
+    sys.exit(0)
+    
+else :
+    omniCfgFileContent = "InitRef = NameService=corbaname::" + str(hostName) + ":" + str(freePort);
+    omniCfgFilePath = os.environ.get('HOME') + "/" + ".omniORB_" + str(hostName) + "_" + str(freePort) + ".cfg";
+
+    omni_file = file(omniCfgFilePath,'w+');
+    omni_file.write(omniCfgFileContent);
+    omni_file.write("\n");
+    omni_file.close();
+
+    if (len(sys.argv) > 1) and sys.argv[1] == "--save-config" :
+        omniCfgCurrent = os.environ.get('HOME') + "/.omniORB_current.cfg";
+        if os.name == "posix" :
+            #make a symbolic link
+            symlink(omniCfgFilePath, omniCfgCurrent);
+        else :
+            #copy the file
+            shutil.copy(omniCfgFilePath, omniCfgCurrent);
+            
+        omniCfgFilePath = omniCfgCurrent;
+            
+    
+    
+
+    ## 2. Set the OMNIORB_CONFIG environment variable
+    os.environ['OMNIORB_CONFIG']=omniCfgFilePath;
+
+
+    ## 3. execute the file runSalome.py
+    runSalomePyFilePath = os.environ.get('KERNEL_ROOT_DIR') + "/bin/salome/runSalome.py";
+
+    if os.path.isfile(runSalomePyFilePath) :
+        execfile(runSalomePyFilePath);
+