Salome HOME
Porting to Mandrake 10.1 and new products:
[modules/kernel.git] / bin / launchConfigureParser.py
index 47f120d8e01cad8d8dd62fa89789774e3d7cd9e9..d66bdedf9d44987dc2a9e4a3ae049aadb4784fa4 100755 (executable)
@@ -44,7 +44,7 @@ class xml_parser:
                 pass
         elif self.space == ["Configuration-list","modules-list","module","plugin"] and "name" in attrs.getNames():
             key = str(self.currentModuleName)+"_plugins"
-            if not self.opts.has_key("key"):
+            if not self.opts.has_key(key):
                 self.opts[key]=[]
                 pass
             self.opts[key].append(attrs.getValue("name"))
@@ -92,53 +92,18 @@ class xml_parser:
 
 # -----------------------------------------------------------------------------
 
-### searching for launch configuration file : $HOME/.$(application_name)/$(application_name).launch
-
-appname = None
-dirname = None
-filename = None
-for bindir in glob.glob(os.environ["KERNEL_ROOT_DIR"]+"/bin/*"):
-    appname = string.split(bindir, "/").pop()
-    print 'Application name: "'+appname+'"'
-    # find version number
-    versnb = ""
-    try:
-      file = open(os.environ["KERNEL_ROOT_DIR"]+"/bin/"+appname+"/VERSION", "r")
-      s = file.read()
-      l = string.split(s, ":")
-      vl = string.split(l[1], " ")
-      i = 0
-      while len(versnb) == 0:
-        versnb = vl[i]
-        i += 1
-        pass
-      versnb = string.split(versnb, "\n")[0]
-      print "Version ",versnb
-    except:
-      pass
-    # end find version number
-    dirname = os.environ["HOME"]+"/."+appname+"_"+versnb
-    filename = dirname+"/"+appname+".launch"
-    if not os.path.exists(filename) and \
-       not os.path.exists(os.environ["KERNEL_ROOT_DIR"]+"/bin/"+appname+"/"+appname+".launch"):
-        filename = None
-    else:
-        break
-    pass
-if not appname:
-    print "Can not find application name"
-    if not os.have_key("KERNEL_ROOT_DIR"):
-        print "KERNEL_ROOT_DIR environment variable must be set"
-        pass
-    sys.exit(1);
-elif not filename or not os.path.exists(filename):
-    filename = dirname+"/"+appname+".launch"
-    #filename = os.environ["HOME"]+"/."+appname+"/"+appname+".launch"
-    print "Launch configuration file does not exist. Create default:",filename
-    os.system("mkdir -p "+dirname)
-    #os.system("mkdir -p "+os.environ["HOME"]+"/."+appname)
-    os.system("cp -f "+os.environ["KERNEL_ROOT_DIR"]+"/bin/"+appname+"/"+appname+".launch "+filename)
-    pass
+### searching for launch configuration file : $HOME/applipath()/salome.launch
+
+appname="salome"
+import Utils_Identity
+versnb=Utils_Identity.version()
+dirname = os.path.join(os.environ["HOME"],Utils_Identity.getapplipath())
+filename=os.path.join(dirname,"salome.launch")
+
+if not os.path.exists(filename):
+   print "Launch configuration file does not exist. Create default:",filename
+   os.system("mkdir -p "+dirname)
+   os.system("cp -f "+os.environ["KERNEL_ROOT_DIR"]+"/bin/salome/salome.launch "+filename)
 
 ### get options from launch configuration file
 
@@ -159,9 +124,12 @@ else:
 for aKey in ("containers","embedded","key","modules","standalone"):
     if not args.has_key(aKey):
         args[aKey]=[]
-for aKey in ("gui","logger","xterm","portkill","killall"):
+for aKey in ("gui","logger","file","xterm","portkill","killall","interp"):
     if not args.has_key(aKey):
         args[aKey]=0
+if args["file"]:
+    afile=args["file"]
+    args["file"]=[afile]
 args["appname"] = appname
 
 ### searching for my port
@@ -172,7 +140,7 @@ try:
   s = file.read()
   while len(s):
     l = string.split(s, ":")
-    if string.split(l[0], " ")[0] == "ORBInitRef":
+    if string.split(l[0], " ")[0] == "ORBInitRef" or string.split(l[0], " ")[0] == "InitRef" :
       my_port = int(l[len(l)-1])
       pass
     s = file.read()
@@ -237,7 +205,7 @@ except:
 
 opterror=0
 for opt in opts:
-    if not opt in ("h","g","l","x","m","e","s","c","p","k","t"):
+    if not opt in ("h","g","l","f","x","m","e","s","c","p","k","t","i"):
         print "command line error: -", opt
         opterror=1
 
@@ -248,27 +216,29 @@ if opts.has_key("h"):
     print """USAGE: runSalome.py [options]
     [command line options] :
     --help or -h                  : print this help
-    --gui or -g                   : lancement du GUI
+    --gui or -g                   : launching with GUI
     --terminal -t                 : launching without gui (to deny --gui)
-    --logger or -l                : redirection des messages dans un fichier
-    --xterm or -x                 : 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 or -l                : redirect messages in a CORBA collector
+    --file=filename or -f=filename: redirect messages in a log file  
+    --xterm or -x                 : execute servers in xterm console (messages appear in xterm windows)
+    --modules=module1,module2,... : salome module list (modulen is the name of Salome module to load)
     or -m=module1,module2,...
     --embedded=registry,study,moduleCatalog,cppContainer
     or -e=registry,study,moduleCatalog,cppContainer
-                                  : serveurs CORBA embarqués (par defaut: registry,study,moduleCatalog,cppContainer)
-                                  : (logger,pyContainer,supervContainer ne peuvent pas être embarqués
+                                  : embedded CORBA servers (default: registry,study,moduleCatalog,cppContainer)
+                                  : (logger,pyContainer,supervContainer can't be embedded
     --standalone=registry,study,moduleCatalog,cppContainer,pyContainer,supervContainer
     or -s=registry,study,moduleCatalog,cppContainer,pyContainer,supervContainer
-                                  : executables serveurs CORBA indépendants (par défaut: pyContainer,supervContainer)
-    --containers=cpp,python,superv: (obsolete) lancement des containers cpp, python et de supervision
-    or -c=cpp,python,superv       : = on prend les defauts de -e et -s
+                                  : standalone CORBA servers (default: pyContainer,supervContainer)
+    --containers=cpp,python,superv: (obsolete) launching of containers cpp, python and supervision
+    or -c=cpp,python,superv       : = get default from -e and -s
     --portkill or -p              : kill the salome with current port
-    --killall or -k               : kill salome
+    --killall or -k               : kill all salome sessions
+    --interp=n or -i=n            : number of additional xterm to open, with session environment
     
-    La variable d'environnement <modulen>_ROOT_DIR doit etre préalablement
-    positionnée (modulen doit etre en majuscule).
-    KERNEL_ROOT_DIR est obligatoire.
+    For each Salome module, the environment variable <modulen>_ROOT_DIR must be set.
+    The module name (<modulen>) must be uppercase.
+    KERNEL_ROOT_DIR is mandatory.
     """
     sys.exit(1)
     pass
@@ -279,8 +249,12 @@ for opt in opts:
         args['gui'] = 1
     elif opt == 'l':
         args['logger'] = 1
+    elif opt == 'f':
+        args['file'] = opts['f']
     elif opt == 'x':
         args['xterm'] = 1
+    elif opt == 'i':
+        args['interp'] = opts['i']
     elif opt == 'm':
         args['modules'] = opts['m']
     elif opt == 'e':