X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2FrunSalome.py;h=6439d4e5486cc1d3bf5154ee1e8588aca63e6813;hb=9484eae0407296e960cb8468cf279bd87a65a41e;hp=99b7d18f5d2e725226619c35b930f75797f8c0bc;hpb=24cf7e567078cb947fe69ba19a27c8b454cf0098;p=modules%2Fkernel.git diff --git a/bin/runSalome.py b/bin/runSalome.py index 99b7d18f5..6439d4e54 100755 --- a/bin/runSalome.py +++ b/bin/runSalome.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 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 @@ -33,6 +33,7 @@ from launchConfigureParser import verbose from server import process_id, Server import json import subprocess +from salomeContextUtils import ScriptAndArgsObjectEncoder # ----------------------------------------------------------------------------- @@ -222,10 +223,8 @@ class LoggerServer(Server): def __init__(self,args): self.args=args self.initArgs() - from salome_utils import generateFileName - if sys.platform == "win32": dirpath = os.environ["HOME"] - else: dirpath = "/tmp" - logfile = generateFileName( dirpath, + from salome_utils import generateFileName, getLogDir + logfile = generateFileName( getLogDir(), prefix="logger", extension="log", with_username=True, @@ -287,7 +286,7 @@ class SessionServer(Server): pass pass if self.args.has_key('pyscript') and len(self.args['pyscript']) > 0: - msg = json.dumps(self.args['pyscript']) + msg = json.dumps(self.args['pyscript'], cls=ScriptAndArgsObjectEncoder) self.SCMD2+=['--pyscript=%s'%(msg)] pass pass @@ -393,21 +392,6 @@ class LauncherServer(Server): self.CMD=self.SCMD1 + ['"' + string.join(cata_path,'"::"') + '"'] + self.SCMD2 else: self.CMD=self.SCMD1 + self.SCMD2 - -class NotifyServer(Server): - def __init__(self,args,modules_root_dir): - self.args=args - self.initArgs() - self.modules_root_dir=modules_root_dir - myLogName = os.environ["LOGNAME"] - self.CMD=['notifd','-c', - self.modules_root_dir["KERNEL"] +'/share/salome/resources/kernel/channel.cfg', - '-DFactoryIORFileName=/tmp/'+myLogName+'_rdifact.ior', - '-DChannelIORFileName=/tmp/'+myLogName+'_rdichan.ior', - '-DReportLogFile=/tmp/'+myLogName+'_notifd.report', - '-DDebugLogFile=/tmp/'+myLogName+'_notifd.debug', - ] - # # ----------------------------------------------------------------------------- @@ -500,20 +484,13 @@ def startSalome(args, modules_list, modules_root_dir): myServer.run() clt.waitLogger("Logger") - # Notify Server launch - # - - if sys.platform != "win32": - if verbose(): print "Notify Server to launch" - - myServer=NotifyServer(args,modules_root_dir) - myServer.run() - # set siman python path before the session server launching to import scripts inside python console if simanStudyName(args): # MPV: use os.environ here because session server is launched in separated process and sys.path is missed in this case - os.environ["PYTHONPATH"] = "/tmp/SimanSalome/" + args['siman_study'] + "/" + \ - args['siman_scenario'] + "/" + args['siman_user'] + os.pathsep + os.environ["PYTHONPATH"]; + from salome_utils import getTmpDir + ppath = os.path.join(getTmpDir, "SimanSalome", args['siman_study'], + args['siman_scenario'], args['siman_user']) + os.environ["PYTHONPATH"] = ppath + os.pathsep + os.environ["PYTHONPATH"] # Launch Session Server (to show splash ASAP) # @@ -749,22 +726,29 @@ def useSalome(args, modules_list, modules_root_dir): import killSalomeWithPort self.killSalomeWithPort = killSalomeWithPort return - def delete(self): + def __del__(self): self.killSalomeWithPort.killMyPort(self.port) return pass - args['shutdown_servers'] = __utils__(args['port']) + def func(s): + del s + import atexit + atexit.register(func, __utils__(args['port'])) pass pass # run python scripts, passed as command line arguments toimport = [] - if args.has_key('pyscript'): - if args.has_key('gui') and args.has_key('session_gui'): - if not args['gui'] or not args['session_gui']: + if args.has_key('gui') and args.has_key('session_gui'): + if not args['gui'] or not args['session_gui']: + if args.has_key('study_hdf'): + toopen = args['study_hdf'] + if toopen: + import salome + salome.salome_init(toopen) + if args.has_key('pyscript'): toimport = args['pyscript'] - - from salomeLauncherUtils import formatScriptsAndArgs + from salomeContextUtils import formatScriptsAndArgs command = formatScriptsAndArgs(toimport) if command: proc = subprocess.Popen(command, shell=True) @@ -776,7 +760,7 @@ def useSalome(args, modules_list, modules_root_dir): def execScript(script_path): print 'executing', script_path - sys.path.insert(0, os.path.dirname(script_path)) + sys.path.insert(0, os.path.realpath(os.path.dirname(script_path))) execfile(script_path,globals()) del sys.path[0] @@ -787,12 +771,10 @@ def registerEnv(args, modules_list, modules_root_dir): Register args, modules_list, modules_root_dir in a file for further use, when SALOME is launched embedded in an other application. """ - if sys.platform == "win32": - fileEnv = os.getenv('TEMP') - else: - fileEnv = '/tmp/' - - fileEnv += os.getenv('USER') + "_" + str(args['port']) \ + from salome_utils import getTmpDir + fileEnv = getTmpDir() + from salome_utils import getUserName + fileEnv += getUserName() + "_" + str(args['port']) \ + '_' + args['appname'].upper() + '_env' fenv=open(fileEnv,'w') pickle.dump((args, modules_list, modules_root_dir),fenv) @@ -811,11 +793,6 @@ def no_main(): from searchFreePort import searchFreePort searchFreePort(args, 0) clt = useSalome(args, modules_list, modules_root_dir) - - if args.has_key('shutdown_servers') : - var = args['shutdown_servers'] - if hasattr(var, 'delete') and callable(getattr(var, 'delete')) : - var.delete() return clt # ----------------------------------------------------------------------------- @@ -825,7 +802,7 @@ def main(): # define folder to store omniorb config (initially in virtual application folder) try: - from salomeLauncherUtils import setOmniOrbUserPath + from salomeContextUtils import setOmniOrbUserPath setOmniOrbUserPath() except Exception, e: print e @@ -943,11 +920,6 @@ def runSalome(): if test: foreGround(clt, args) pass - # -- - if args.has_key('shutdown_servers') : - var = args['shutdown_servers'] - if hasattr(var, 'delete') and callable(getattr(var, 'delete')) : - var.delete() pass #