-# Copyright (C) 2015-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2015-2017 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
#
@staticmethod
- def start(shutdown_servers=False):
+ def start(shutdown_servers=False, with_gui=False, args=[]):
import tempfile
- log = tempfile.NamedTemporaryFile(suffix='_nsport.log', delete=False)
+ log = tempfile.NamedTemporaryFile(suffix='_nsport', delete=True)
+ port_log = log.name
log.close()
-
+ port_log = port_log + "-%s.log"%(os.getpid())
instance_args = [
- "--ns-port-log=%s"%log.name,
+ "--ns-port-log=%s"%port_log,
"--shutdown-servers=%d"%shutdown_servers
- ]
+ ] + args
+
salome_instance = SalomeInstance()
- salome_instance.__run(args=instance_args)
+ salome_instance.__run(args=instance_args, with_gui=with_gui)
- with open(log.name) as f:
+ with open(port_log) as f:
salome_instance.port = int(f.readline())
- os.remove(log.name)
+ os.remove(port_log)
return salome_instance
#
- def __run(self, args=None):
+ def __run(self, args=None, with_gui=False):
if args is None:
args = []
+
sys.argv = ['runSalome'] + args
- if "INGUI" in args:
+ if with_gui:
# :WARNING: NOT TESTED YET
sys.argv += ["--gui"]
sys.argv += ["--show-desktop=1"]
import runSalome
runSalome.runSalome()
- import salome
- salome.salome_init()
- session_server = salome.naming_service.Resolve('/Kernel/Session')
- if session_server:
- session_server.emitMessage("connect_to_study")
- session_server.emitMessage("activate_viewer/ParaView")
- pass
+ if not with_gui:
+ import salome
+ salome.salome_init()
+ session_server = salome.naming_service.Resolve('/Kernel/Session')
+ if session_server:
+ session_server.emitMessage("connect_to_study")
+ session_server.emitMessage("activate_viewer/ParaView")
+ pass
#
def stop(self):
#
if __name__ == "__main__":
- print "##### Start instance..."
+ print("##### Start instance...")
salome_instance = SalomeInstance.start()
port = salome_instance.get_port()
- print "##### ...instance started on port %s"%port
+ print("##### ...instance started on port %s"%port)
- print "##### Terminate instance running on port %s"%port
+ print("##### Terminate instance running on port %s"%port)
salome_instance.stop()
#