Salome HOME
Merge branch 'gdd_env_modules_in_config_appli'
[modules/kernel.git] / bin / salomeContext.py
index f4bbf8861f47b84f4ab9f370f9f7bcebea8df78f..92878a52aef382324d3d2aba804a9971c140a0e5 100644 (file)
@@ -91,7 +91,7 @@ class SalomeContext:
     if len(configFileNames) == 0:
       raise SalomeContextException("No configuration files given")
 
-    reserved=['PATH', 'DYLD_FALLBACK_LIBRARY_PATH', 'DYLD_LIBRARY_PATH', 'LD_LIBRARY_PATH', 'PYTHONPATH', 'MANPATH', 'PV_PLUGIN_PATH', 'INCLUDE', 'LIBPATH', 'SALOME_PLUGINS_PATH', 'LIBRARY_PATH']
+    reserved=['PATH', 'DYLD_FALLBACK_LIBRARY_PATH', 'DYLD_LIBRARY_PATH', 'LD_LIBRARY_PATH', 'PYTHONPATH', 'MANPATH', 'PV_PLUGIN_PATH', 'INCLUDE', 'LIBPATH', 'SALOME_PLUGINS_PATH', 'LIBRARY_PATH', 'QT_PLUGIN_PATH']
     for filename in configFileNames:
       basename, extension = os.path.splitext(filename)
       if extension == ".cfg":
@@ -260,7 +260,7 @@ class SalomeContext:
 
     try:
       res = getattr(self, command)(options) # run appropriate method
-      return res or (None, None)
+      return res or 0
     except SystemExit as ex:
       if ex.code != 0:
         self.getLogger().error("SystemExit %s in method %s.", ex.code, command)
@@ -319,6 +319,7 @@ class SalomeContext:
 
     import runSalome
     runSalome.runSalome()
+    return 0
   #
 
   def _setContext(self, args=None):
@@ -328,7 +329,7 @@ class SalomeContext:
       print "*** SALOME context has already been set."
       print "*** Enter 'exit' (only once!) to leave SALOME context."
       print "***"
-      return
+      return 0
 
     os.environ["SALOME_CONTEXT_SET"] = "yes"
     print "***"
@@ -338,7 +339,8 @@ class SalomeContext:
 
     cmd = ["/bin/bash"]
     proc = subprocess.Popen(cmd, shell=False, close_fds=True)
-    return proc.communicate()
+    proc.communicate()
+    return proc.returncode()
   #
 
   def _runSession(self, args=None):
@@ -373,7 +375,7 @@ class SalomeContext:
     ports = args
     if not ports:
       print "Port number(s) not provided to command: salome kill <port(s)>"
-      return
+      return 1
 
     from multiprocessing import Process
     from killSalomeWithPort import killMyPort
@@ -383,7 +385,7 @@ class SalomeContext:
         p = Process(target = killMyPort, args=(port,))
         p.start()
         p.join()
-    pass
+    return 0
   #
 
   def _killAll(self, unused=None):
@@ -405,6 +407,7 @@ class SalomeContext:
       from killSalome import killAllPorts
       killAllPorts()
       pass
+    return 0
   #
 
   def _runTests(self, args=None):
@@ -466,7 +469,7 @@ Available options are:
 
     if "-h" in args or "--help" in args:
       print usage + epilog
-      return
+      return 0
 
     if "-p" in args or "--ports" in args:
       import PortManager
@@ -498,7 +501,9 @@ Available options are:
 
     if "-v" in args or "--version" in args:
       print "Running with python", platform.python_version()
-      self._runAppli(["--version"])
+      return self._runAppli(["--version"])
+
+    return 0
   #
 
   def _showDoc(self, args=None):
@@ -508,7 +513,7 @@ Available options are:
     modules = args
     if not modules:
       print "Module(s) not provided to command: salome doc <module(s)>"
-      return
+      return 1
 
     appliPath = os.getenv("ABSOLUTE_APPLI_PATH")
     if not appliPath:
@@ -616,7 +621,8 @@ if __name__ == "__main__":
     context = pickle.loads(sys.argv[1])
     args = pickle.loads(sys.argv[2])
 
-    context._startSalome(args)
+    status = context._startSalome(args)
+    sys.exit(status)
   else:
     usage()
 #