Salome HOME
#20171 [CEA 20071] Handle missing netstat
[modules/kernel.git] / bin / runConsole.py
old mode 100644 (file)
new mode 100755 (executable)
index ee53a2f..847ba0d
@@ -1,5 +1,6 @@
+#! /usr/bin/env python3
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2020  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
@@ -46,7 +47,7 @@ ask user to select a port from list of available SALOME instances.\n
 The -c option can be used to specify the command to execute in the interpreter.
 A script can also be used.
 For example:
-       salome connect -p 2810 -c 'print "Hello"'
+       salome connect -p 2810 -c 'print("Hello")'
        salome connect -p 2810 hello.py
 """
   parser = MyParser(usage=usage, epilog=epilog)
@@ -61,7 +62,7 @@ For example:
     (options, args) = parser.parse_args(args)
   except Exception as e:
     print(e)
-    return
+    return {}, []
 
   return options, args
 #
@@ -161,7 +162,7 @@ def start_client():
   if session_server:
     session = clt.waitNS("/Kernel/Session")
   catalog = clt.waitNS("/Kernel/ModulCatalog")
-  studyMgr = clt.waitNS("/myStudyManager")
+  study = clt.waitNS("/Study")
 
   import salome
   salome.salome_init()
@@ -197,7 +198,7 @@ def connect(args=None, env=None):
   options, args = __parse_args(args)
   host, port, filename = __get_running_session(options.port)
   if not port:
-    sys.exit(0)
+    return 1
 
   cmd = [
     "os.environ['OMNIORB_CONFIG'] = '%s'"%filename,
@@ -215,10 +216,11 @@ def connect(args=None, env=None):
     import subprocess
     absoluteAppliPath = os.getenv('ABSOLUTE_APPLI_PATH','')
     env_copy = os.environ.copy()
-    cmdDump=pickle.dumps(cmd,protocol=0)
-    cmdString=cmdDump.decode()
-    proc = subprocess.Popen(['python', os.path.join(absoluteAppliPath,"bin","salome","runConsole.py"), cmdString], shell=False, close_fds=True, env=env_copy)
-    return proc.communicate()
+    cmdDump = pickle.dumps(cmd, protocol=0)
+    cmdString = cmdDump.decode()
+    proc = subprocess.Popen(['python3', os.path.join(absoluteAppliPath,"bin","salome","runConsole.py"), cmdString], shell=False, close_fds=True, env=env_copy)
+    proc.communicate()
+    return proc.returncode
 #
 
 if __name__ == "__main__":