[command line options] :
--help : affichage de l'aide
--gui : lancement du GUI
---logger : redirection des messages dans un fichier
---xterm : les serveurs ouvrent une fen�tre xterm et les messages sont affich�s dans cette fen�tre
---modules=module1,module2,... : o� modulen est le nom d'un module Salome � charger dans le catalogue
+--logger : redirection des messages dans un fichier
+--xterm : les serveurs ouvrent une fen??tre xterm et les messages sont affich??s dans cette fen??tre
+--modules=module1,module2,... : o?? modulen est le nom d'un module Salome ?? charger dans le catalogue
--containers=cpp,python,superv: lancement des containers cpp, python et de supervision
---killall : arr�t des serveurs de salome
+--killall : arr??t des serveurs de salome
- La variable d'environnement <modulen>_ROOT_DIR doit etre pr�alablement
- positionn�e (modulen doit etre en majuscule).
+ La variable d'environnement <modulen>_ROOT_DIR doit etre pr??alablement
+ positionn??e (modulen doit etre en majuscule).
KERNEL_ROOT_DIR est obligatoire.
"""
# -----------------------------------------------------------------------------
#
-# Fonction d'arr�t de salome
+# Fonction d'arr??t de salome
#
def killSalome():
- print "arret des serveurs SALOME"
- for pid, cmd in process_id.items():
- print "arret du process %s : %s"% (pid, cmd[0])
+ print("arret des serveurs SALOME")
+ for pid, cmd in list(process_id.items()):
+ print("arret du process %s : %s"% (pid, cmd[0]))
try:
- os.kill(pid,signal.SIGKILL)
+ os.kill(pid, signal.SIGKILL)
except:
- print " ------------------ process %s : %s inexistant"% (pid, cmd[0])
- print "arret du naming service"
+ print(" ------------------ process %s : %s inexistant"% (pid, cmd[0]))
+ print("arret du naming service")
os.system("killall -9 omniNames")
# -----------------------------------------------------------------------------
#
def message(code, msg=''):
- if msg: print msg
+ if msg: print(msg)
sys.exit(code)
import sys,os,string,glob,time,signal,pickle,getopt
try:
for o, a in opts:
if o in ('-h', '--help'):
- print usage
+ print(usage)
sys.exit(1)
elif o in ('-g', '--gui'):
with_gui=1
liste_containers = [x.lower() for x in a.split(',')]
for r in liste_containers:
if r not in ('cpp', 'python', 'superv'):
- message(1, 'Invalid -c/--containers option: %s' % a)
+ message(1, 'Invalid -c/--containers option: %s' % a)
if 'cpp' in liste_containers:
- with_container_cpp=1
+ with_container_cpp = 1
else:
- with_container_cpp=0
+ with_container_cpp = 0
if 'python' in liste_containers:
- with_container_python=1
+ with_container_python = 1
else:
- with_container_python=0
+ with_container_python = 0
if 'superv' in liste_containers:
- with_container_superv=1
+ with_container_superv = 1
else:
- with_container_superv=0
+ with_container_superv = 0
elif o in ('-k', '--killall'):
filedict='/tmp/'+os.getenv('USER')+'_SALOME_pidict'
#filedict='/tmp/'+os.getlogin()+'_SALOME_pidict'
found = 0
try:
fpid=open(filedict, 'r')
- found = 1
+ found = 1
except:
- print "le fichier %s des process SALOME n'est pas accessible"% filedict
+ print("le fichier %s des process SALOME n'est pas accessible"% filedict)
if found:
process_id=pickle.load(fpid)
fpid.close()
killSalome()
- process_id={}
+ process_id = {}
os.remove(filedict)
-
-except getopt.error, msg:
- print usage
+
+except getopt.error as msg:
+ print(usage)
sys.exit(1)
# -----------------------------------------------------------------------------
#
-# V�rification des variables d'environnement
+# V??rification des variables d'environnement
#
try:
kernel_root_dir=os.environ["KERNEL_ROOT_DIR"]
modules_root_dir["KERNEL"]=kernel_root_dir
except:
- print usage
+ print(usage)
sys.exit(1)
for module in liste_modules :
module_root_dir=os.environ[module +"_ROOT_DIR"]
modules_root_dir[module]=module_root_dir
except:
- print usage
+ print(usage)
sys.exit(1)
# il faut KERNEL en premier dans la liste des modules
# - l'ordre des modules dans le catalogue sera identique
-# - la liste des modules presents dans le catalogue est exploit�e pour charger les modules CORBA python,
+# - la liste des modules presents dans le catalogue est exploit??e pour charger les modules CORBA python,
# il faut charger les modules python du KERNEL en premier
if "KERNEL" in liste_modules:liste_modules.remove("KERNEL")
#print liste_modules
#print modules_root_dir
-os.environ["SALOMEPATH"]=":".join(modules_root_dir.values())
+os.environ["SALOMEPATH"]=":".join(list(modules_root_dir.values()))
if "SUPERV" in liste_modules:with_container_superv=1
# -----------------------------------------------------------------------------
#
-# D�finition des classes d'objets pour le lancement des Server CORBA
+# D??finition des classes d'objets pour le lancement des Server CORBA
#
class Server:
CMD=[]
if with_xterm:
- ARGS=['xterm', '-iconic', '-sb', '-sl', '500', '-e']
+ ARGS = ['xterm', '-iconic', '-sb', '-sl', '500', '-e']
else:
- ARGS=[]
+ ARGS = []
def run(self):
args = self.ARGS+self.CMD
for module in liste_modules:
module_root_dir=modules_root_dir[module]
module_cata=module+"Catalog.xml"
- print " ", module_cata
+ print(" ", module_cata)
cata_path.extend(glob.glob(os.path.join(module_root_dir,"share","salome","resources",module_cata)))
- self.CMD=self.SCMD1 + [string.join(cata_path,':')] + self.SCMD2
+ self.CMD = self.SCMD1 + [':'.join(cata_path)] + self.SCMD2
class SalomeDSServer(Server):
CMD=['SALOMEDS_Server']
#
# Activation du GUI de Session Server
#
-
+
session.GetInterface()
#
# disponibilite dans le naming service
#
if with_logger:
- LoggerServer().run()
- clt.waitLogger("Logger")
+ LoggerServer().run()
+ clt.waitLogger("Logger")
#
# Lancement Registry Server
RegistryServer().run()
#
- # Attente de la disponibilit� du Registry dans le Naming Service
+ # Attente de la disponibilit?? du Registry dans le Naming Service
#
clt.waitNS("/Registry")
cataServer.run()
#
- # Attente de la disponibilit� du Catalog Server dans le Naming Service
+ # Attente de la disponibilit?? du Catalog Server dans le Naming Service
#
import SALOME_ModuleCatalog
clt.waitNS("/Kernel/ModulCatalog",SALOME_ModuleCatalog.ModuleCatalog)
SalomeDSServer().run()
if "GEOM" in liste_modules:
- print "GEOM OCAF Resources"
- os.environ["CSF_GEOMDS_ResourcesDefaults"]=os.path.join(modules_root_dir["GEOM"],"share","salome","resources")
+ print("GEOM OCAF Resources")
+ os.environ["CSF_GEOMDS_ResourcesDefaults"] = os.path.join(modules_root_dir["GEOM"], "share", "salome", "resources")
#
- # Attente de la disponibilit� du SalomeDS dans le Naming Service
+ # Attente de la disponibilit?? du SalomeDS dans le Naming Service
#
clt.waitNS("/Study")
SessionServer().run()
#
- # Attente de la disponibilit� du Session Server dans le Naming Service
+ # Attente de la disponibilit?? du Session Server dans le Naming Service
#
import SALOME
session=clt.waitNS("/Kernel/Session",SALOME.Session)
# Lancement Container C++ local
#
if with_container_cpp:
- ContainerCPPServer().run()
- #
- # Attente de la disponibilit� du Container C++ local
- # dans le Naming Service
- #
- clt.waitNS("/Containers/" + theComputer + "/FactoryServer")
+ ContainerCPPServer().run()
+ #
+ # Attente de la disponibilit?? du Container C++ local
+ # dans le Naming Service
+ #
+ clt.waitNS("/Containers/" + theComputer + "/FactoryServer")
#
# Lancement Container Python local
#
if with_container_python:
- ContainerPYServer().run()
- #
- # Attente de la disponibilit� du Container Python local
- # dans le Naming Service
- #
- clt.waitNS("/Containers/" + theComputer + "/FactoryServerPy")
+ ContainerPYServer().run()
+ #
+ # Attente de la disponibilit?? du Container Python local
+ # dans le Naming Service
+ #
+ clt.waitNS("/Containers/" + theComputer + "/FactoryServerPy")
if with_container_superv:
- #
- # Lancement Container Supervision local
- #
- ContainerSUPERVServer().run()
- #
- # Attente de la disponibilit� du Container Supervision local
- # dans le Naming Service
- #
- clt.waitNS("/Containers/" + theComputer + "/SuperVisionContainer")
+ #
+ # Lancement Container Supervision local
+ #
+ ContainerSUPERVServer().run()
+ #
+ # Attente de la disponibilit?? du Container Supervision local
+ # dans le Naming Service
+ #
+ clt.waitNS("/Containers/" + theComputer + "/SuperVisionContainer")
#
# Activation du GUI de Session Server
#
#session.GetInterface()
end_time = os.times()
- print
- print "Start SALOME, elpased time : %5.1f seconds"% (end_time[4] - init_time[4])
+ print()
+ print("Start SALOME, elpased time : %5.1f seconds"% (end_time[4] - init_time[4]))
return clt
#
if __name__ == "__main__":
+ import codecs
clt=None
try:
clt = startSalome()
except:
- print
- print
- print "--- erreur au lancement Salome ---"
+ print()
+ print()
+ print("--- erreur au lancement Salome ---")
#print process_id
filedict='/tmp/'+os.getenv('USER')+'_SALOME_pidict'
#filedict='/tmp/'+os.getlogin()+'_SALOME_pidict'
- fpid=open(filedict, 'w')
- pickle.dump(process_id,fpid)
- fpid.close()
+ with codecs.open(filedict, 'w') as fpid:
+ pickle.dump(process_id, fpid)
- print """
+ print("""
Sauvegarde du dictionnaire des process dans , %s
Pour tuer les process SALOME, executer : python killSalome.py depuis
une console, ou bien killSalome() depuis le present interpreteur,
-s'il n'est pas ferm�.
+s'il n'est pas ferm??.
runHOMARD, avec l'option --killall, commence par tuer les process restants
-d'une execution pr�c�dente.
+d'une execution pr??c??dente.
Pour lancer uniquement le GUI, executer startGUI() depuis le present interpreteur,
-s'il n'est pas ferm�.
+s'il n'est pas ferm??.
-""" % filedict
+""" % filedict)
#
# Impression arborescence Naming Service
#
if clt != None:
- print
- print " --- registered objects tree in Naming Service ---"
+ print()
+ print(" --- registered objects tree in Naming Service ---")
clt.showNS()
session=clt.waitNS("/Kernel/Session")
catalog=clt.waitNS("/Kernel/ModulCatalog")
container = clt.waitNS("/Containers/" + socket.gethostname().split('.')[0] + "/FactoryServerPy")
if os.path.isfile("~/.salome/pystartup"):
- f=open(os.path.expanduser("~/.salome/pystartup"),'w')
- PYTHONSTARTUP=f.read()
- f.close()
+ with codecs.open(os.path.expanduser("~/.salome/pystartup")) as f:
+ PYTHONSTARTUP = f.read()
else:
PYTHONSTARTUP="""
# Add auto-completion and a stored history file of commands to your Python
# interactive interpreter. Requires Python 2.0+, readline. Autocomplete is
# bound to the TAB key by default (you can change it - see readline docs).
#
-# Store the history in ~/.salome/pyhistory,
+# Store the history in ~/.salome/pyhistory,
#
import atexit
import os
atexit.register(save_history)
del os, atexit, readline, rlcompleter, save_history, historyPath
"""
- f=open(os.path.expanduser("~/.salome/pystartup"),'w')
- f.write(PYTHONSTARTUP)
- f.close()
+ with codecs.open(os.path.expanduser("~/.salome/pystartup"), 'w') as f:
+ f.write(PYTHONSTARTUP)
- exec PYTHONSTARTUP in {}
-
+ exec(PYTHONSTARTUP, {})