#!/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
def __init__(self,args):
self.args=args
self.initArgs()
- self.SCMD1=['SALOME_ModuleCatalog_Server','-common']
+ self.SCMD1=['SALOME_ModuleCatalog_Server']
+ if 'launcher' in self.args:
+ pos = args['launcher'].find(":")
+ if pos != -1:
+ self.SCMD1+=['-ORBInitRef']
+ machine = args['launcher'][0:pos]
+ port = args['launcher'][pos+1:]
+ self.SCMD1+=["NameService=corbaname::" + machine + ":" + port]
+ self.SCMD1+=['-common']
self.SCMD2=[]
- home_dir=os.getenv('HOME')
+ home_dir=os.path.expanduser("~")
if home_dir is not None:
- self.SCMD2=['-personal',os.path.join(home_dir,'Salome/resources/CatalogModulePersonnel.xml')]
+ self.SCMD2=['-personal',os.path.join(home_dir,'Salome', 'resources', 'CatalogModulePersonnel.xml')]
def setpath(self,modules_list,modules_root_dir):
list_modules = modules_list[:]
self.args=args
self.initArgs()
self.CMD=['SALOMEDS_Server']
+ if 'launcher' in self.args:
+ pos = args['launcher'].find(":")
+ if pos != -1:
+ self.CMD+=['-ORBInitRef']
+ machine = args['launcher'][0:pos]
+ port = args['launcher'][pos+1:]
+ self.CMD+=["NameService=corbaname::" + machine + ":" + port]
# ---
self.args=args
self.initArgs()
self.CMD=['SALOME_ConnectionManagerServer']
+ if 'launcher' in self.args:
+ pos = args['launcher'].find(":")
+ if pos != -1:
+ self.CMD+=['-ORBInitRef']
+ machine = args['launcher'][0:pos]
+ port = args['launcher'][pos+1:]
+ self.CMD+=["NameService=corbaname::" + machine + ":" + port]
+
# ---
self.args=args
self.initArgs()
self.CMD=['SALOME_Registry_Server', '--salome_session','theSession']
+ if 'launcher' in self.args:
+ pos = args['launcher'].find(":")
+ if pos != -1:
+ self.CMD+=['-ORBInitRef']
+ machine = args['launcher'][0:pos]
+ port = args['launcher'][pos+1:]
+ self.CMD+=["NameService=corbaname::" + machine + ":" + port]
# ---
def __init__(self,args,with_gui=False):
self.args=args
self.initArgs()
- self.CMD=['SALOME_Container','FactoryServer']
+ self.CMD=['SALOME_Container']
+ if 'launcher' in self.args:
+ pos = args['launcher'].find(":")
+ if pos != -1:
+ self.CMD+=['-ORBInitRef']
+ machine = args['launcher'][0:pos]
+ port = args['launcher'][pos+1:]
+ self.CMD+=["NameService=corbaname::" + machine + ":" + port]
+ self.CMD+=['FactoryServer']
if not with_gui and self.args["valgrind_session"]:
l = ["valgrind"]
val = os.getenv("VALGRIND_OPTIONS")
self.initArgs()
self.SCMD1=['SALOME_Session_Server']
self.SCMD2=[]
+ if 'launcher' in self.args:
+ pos = args['launcher'].find(":")
+ if pos != -1:
+ self.SCMD1+=['-ORBInitRef']
+ machine = args['launcher'][0:pos]
+ port = args['launcher'][pos+1:]
+ self.SCMD1+=["NameService=corbaname::" + machine + ":" + port]
if 'registry' in self.args['embedded']:
self.SCMD1+=['--with','Registry',
'(','--salome_session','theSession',')']
if 'moduleCatalog' in self.args['embedded']:
self.SCMD1+=['--with','ModuleCatalog','(','-common']
- home_dir=os.getenv('HOME')
+ home_dir=os.path.expanduser("~")
if home_dir is not None:
- self.SCMD2+=['-personal',os.path.join(home_dir,'Salome/resources/CatalogModulePersonnel.xml')]
+ self.SCMD2+=['-personal',os.path.join(home_dir,'Salome','resources','CatalogModulePersonnel.xml')]
self.SCMD2+=[')']
if 'study' in self.args['embedded']:
self.SCMD2+=['--with','SALOMEDS','(',')']
if 'pyContainer' in self.args['standalone'] or 'pyContainer' in self.args['embedded']:
raise Exception('Python containers no longer supported')
if self.args['gui']:
- session_gui = True
- if 'session_gui' in self.args:
- session_gui = self.args['session_gui']
- if session_gui:
- self.SCMD2+=['GUI']
- if self.args['splash']:
- self.SCMD2+=['SPLASH']
+ session_gui = self.args.get('session_gui', True)
+ if not session_gui:
+ self.SCMD2+=['--hide-desktop']
+ else:
+ if not self.args['splash']:
+ self.SCMD2+=['--hide-splash']
pass
if self.args['study_hdf'] is not None:
self.SCMD2+=['--study-hdf=%s'%self.args['study_hdf']]
pass
pass
if self.args['noexcepthandler']:
- self.SCMD2+=['noexcepthandler']
+ self.SCMD2+=['--no-exception-handler']
if 'user_config' in self.args:
self.SCMD2+=['--resources=%s'%self.args['user_config']]
if 'modules' in self.args:
'(','--salome_session','theSession',')']
if 'moduleCatalog' in self.args['embedded']:
self.SCMD1+=['--with','ModuleCatalog','(','-common']
- self.SCMD2+=['-personal',
- '${HOME}/Salome/resources/CatalogModulePersonnel.xml',')']
+ home_dir=os.path.expanduser("~")
+ if home_dir is not None:
+ self.SCMD2=['-personal',os.path.join(home_dir,'Salome','resources','CatalogModulePersonnel.xml')]
+ self.SCMD2+=[')']
if 'study' in self.args['embedded']:
self.SCMD2+=['--with','SALOMEDS','(',')']
if 'cppContainer' in self.args['embedded']:
# Launch Session Server (to show splash ASAP)
#
- if args["gui"]:
+ if args["gui"] and not args['launcher_only']:
mySessionServ = SessionServer(args,args['modules'],modules_root_dir)
mySessionServ.setpath(modules_list,modules_root_dir)
mySessionServ.run()
# Launch LauncherServer
#
- myCmServer = LauncherServer(args)
- myCmServer.setpath(modules_list,modules_root_dir)
- myCmServer.run()
+ if not 'launcher' in args:
+ myCmServer = LauncherServer(args)
+ myCmServer.setpath(modules_list,modules_root_dir)
+ myCmServer.run()
#
# Launch ConnectionManagerServer
#
- myConnectionServer = ConnectionManagerServer(args)
- myConnectionServer.run()
-
+ if not args['launcher_only']:
+ myConnectionServer = ConnectionManagerServer(args)
+ myConnectionServer.run()
from Utils_Identity import getShortHostName
# Wait until Session Server is registered in naming service
#
- if args["gui"]:
+ if args["gui"] and not args['launcher_only']:
##----------------
import Engines
import SALOME
if 'pyscript' in args:
toimport = args['pyscript']
from salomeContextUtils import formatScriptsAndArgs
- command = formatScriptsAndArgs(toimport)
+ command = formatScriptsAndArgs(toimport, escapeSpaces=True)
if command:
proc = subprocess.Popen(command, shell=True)
addToKillList(proc.pid, command, args['port'])
sys.exit(1)
from salome_utils import getHostName
- args, modules_list, modules_root_dir = setenv.get_config(exeName=exeName)
+ keep_env = not os.getenv('SALOME_PLEASE_SETUP_ENVIRONMENT_AS_BEFORE')
+ args, modules_list, modules_root_dir = setenv.get_config(exeName=exeName, keepEnvironment=keep_env)
print("runSalome running on %s" % getHostName())
kill_salome(args)
if args['wake_up_session']:
test = False
pass
- if test:
+ if test and not 'launcher' in args:
from searchFreePort import searchFreePort
searchFreePort(args, save_config, args.get('useport'))
pass
# --
#setenv.main()
- setenv.set_env(args, modules_list, modules_root_dir)
+ setenv.set_env(args, modules_list, modules_root_dir, keepEnvironment=keep_env)
clt = useSalome(args, modules_list, modules_root_dir)
return clt,args