Salome HOME
spns #34338: post build script is not embedded in archive
[tools/sat.git] / src / salomeTools.py
index ec06a1ae1131a51edab21bdda6997e6cf6ae2f98..a49524b24c465199efc051015dc06bed564dd2f7 100755 (executable)
@@ -234,11 +234,14 @@ class Sat(object):
     def setInternals(self, opt=None, datadir=None):
         """set the commands by calling the dedicated function etc..."""
         options, remaindersArgs = parser.parse_args(opt)
+        if options.debug_mode:
+            DBG.push_debug(True)
         self.arguments = opt
         self.options = options # the generic options passed to salomeTools
         self.remaindersArgs = remaindersArgs  # the command and their options
         self.datadir = datadir # default value will be <salomeTools root>/data
         self._setCommands(cmdsdir)
+        DBG.write("Sat.options", self.options, self.options.debug_mode)
 
     def getConfig(self):
         return self.cfg
@@ -345,7 +348,6 @@ class Sat(object):
         '''
         # loop on the commands name
         for nameCmd in lCommand:
-            DBG.write("load module command '%s.py'" % nameCmd, "")
             # Exception for the jobs command that requires the paramiko module
             if nameCmd == "jobs":
                 try:
@@ -478,23 +480,25 @@ class Sat(object):
                     if res is None:
                         res = 0
                         
-                except Exception as e:
-                    # Get error
+                except src.SatException as e:
+                    # for sat exception do not display the stack, unless debug mode is set
                     logger_command.write("\n***** ", 1)
                     logger_command.write(src.printcolors.printcError(
-                                                       "salomeTools ERROR:"), 1)
-                    logger_command.write("\n" + str(e) + "\n\n", 1)
-                    # get stack
-                    __, __, exc_traceback = sys.exc_info()
-                    fp = tempfile.TemporaryFile()
-                    traceback.print_tb(exc_traceback, file=fp)
-                    fp.seek(0)
-                    stack = fp.read()
-                    verbosity = 5
+                            "salomeTools ERROR: sat %s" % __nameCmd__), 1)
+                    logger_command.write(" *****\n", 1)
+                    print(e.message)
                     if self.options.debug_mode:
-                        verbosity = 1
-                    logger_command.write("TRACEBACK: %s" % stack.replace('"',"'"),
-                                         verbosity)
+                        logger_command.write("\n" + DBG.format_exception("") + "\n", 1)
+
+                except Exception as e:
+                    # here we print the stack in addition
+                    logger_command.write("\n***** ", 1)
+                    logger_command.write(src.printcolors.printcError(
+                            "salomeTools ERROR: sat %s" % __nameCmd__), 1)
+
+                    logger_command.write("\n" + DBG.format_exception("") + "\n", 1)
+
+
                 finally:
                     # set res if it is not set in the command
                     if res is None:
@@ -701,7 +705,7 @@ def get_version():
     cfgManager = CONFIG.ConfigManager()
     cfg = cfgManager.get_config()
     # print the key corresponding to salomeTools version
-    msg = (src.printcolors.printcHeader( _("Version: ") ) + cfg.INTERNAL.sat_version)
+    msg = (src.printcolors.printcHeader( _("Version: ") ) + src.get_salometool_version(cfg))
     return msg
 
 
@@ -712,7 +716,7 @@ def get_help():
     '''
     msg = "\n" + get_version() + "\n\n"
     msg += src.printcolors.printcHeader( _("Usage: ") ) + \
-          "sat [sat_options] <command> [product] [command_options]\n\n"
+          "sat [sat_options] <command> [application] [command_options]\n\n"
 
     msg += parser.get_help() + "\n"