# Define all possible option for log command : sat log <options>
parser = src.options.Options()
-parser.add_option('t', 'terminal', 'boolean', 'terminal', "Optional: "
- "Terminal log.")
-parser.add_option('l', 'last', 'boolean', 'last', "Show the log of the last "
- "Optional: launched command.")
-parser.add_option('', 'last_terminal', 'boolean', 'last_terminal', "Show the "
- "log of the last compilations"
- "Optional: launched command.")
-parser.add_option('f', 'full', 'boolean', 'full', "Optional: Show the logs of "
- "ALL the launched commands.")
-parser.add_option('c', 'clean', 'int', 'clean', "Optional: Erase the n most "
- "ancient log files.")
-parser.add_option('n', 'no_browser', 'boolean', 'no_browser', "Optional: Do not"
- " launch the browser at the end of the command. Only update "
- "the hat file.")
+parser.add_option('t', 'terminal', 'boolean', 'terminal',
+ "Optional: Show the log (in terminal) of a command, with user choice.")
+parser.add_option('l', 'last', 'boolean', 'last',
+ "Optional: Show the log (in browser) of the last launched command.")
+parser.add_option('', 'last_terminal', 'boolean', 'last_terminal',
+ "Optional: Show the log (in terminal) of the last launched command.")
+parser.add_option('f', 'full', 'boolean', 'full',
+ "Optional: Show the logs of ALL the launched commands.")
+parser.add_option('c', 'clean', 'int', 'clean',
+ "Erase the n most ancient log files.")
+parser.add_option('n', 'no_browser', 'boolean', 'no_browser',
+ "Optional: Do not launch the browser at the end of the command. Only update the hat file.")
def get_last_log_file(logDir, notShownCommands):
'''Used in case of last option. Get the last log command file path.
:return: The text to display for the log command description.
:rtype: str
'''
- return _("Gives access to the logs produced by the salomeTools commands.\n"
- "\nexample:\nsat log")
+ return _("""\
+The log command gives access to the logs produced by the salomeTools commands.
+
+example:
+>> sat log
+""")
def run(args, runner, logger):
'''method that is called when salomeTools is called with log parameter.
# Parse the options
(options, args) = parser.parse_args(args)
- # get the log directory.
+ # get the log directory.
logDir = src.get_log_path(runner.cfg)
-
+
# Print a header
nb_files_log_dir = len(glob.glob(os.path.join(logDir, "*")))
info = [("log directory", logDir),
imgLogo = os.path.join(xslDir, "LOGO-SAT.png")
# copy the stylesheets in the log directory
- shutil.copy2(xslCommand, logDir)
- shutil.copy2(xslHat, logDir)
- src.ensure_path_exists(os.path.join(logDir, "TEST"))
- shutil.copy2(xsltest, os.path.join(logDir, "TEST"))
- shutil.copy2(imgLogo, logDir)
+ # OP We use copy instead of copy2 to update the creation date
+ # So we can clean the LOGS directories easily
+ try:
+ src.ensure_path_exists(logDir)
+ shutil.copy(xslCommand, logDir)
+ shutil.copy(xslHat, logDir)
+ src.ensure_path_exists(os.path.join(logDir, "TEST"))
+ shutil.copy(xsltest, os.path.join(logDir, "TEST"))
+ shutil.copy(imgLogo, logDir)
+ except:
+ # we are here if an user make sat log in jenkins LOGS without write rights
+ # Make a warning and do nothing
+ logger.warning("problem for writing in directory '%s', may be not owner." % logDir)
# If the last option is invoked, just, show the last log file
if options.last_terminal:
src.check_config_has_application(runner.cfg)
- log_dirs = os.listdir(os.path.join(runner.cfg.APPLICATION.workdir,
- 'LOGS'))
+ log_dirs = os.listdir(os.path.join(runner.cfg.APPLICATION.workdir, 'LOGS'))
show_last_logs(logger, runner.cfg, log_dirs)
return 0
# If the last option is invoked, just, show the last log file
if options.last:
lastLogFilePath = get_last_log_file(logDir,
- notShownCommands + ["config"])
+ notShownCommands + ["config"])
if options.terminal:
# Show the log corresponding to the selected command call
print_log_command_in_terminal(lastLogFilePath, logger)
# Create or update the hat xml that gives access to all the commands log files
logger.write(_("Generating the hat log file (can be long) ... "), 3)
xmlHatFilePath = os.path.join(logDir, 'hat.xml')
- src.logger.update_hat_xml(logDir,
+ try:
+ src.logger.update_hat_xml(logDir,
application = runner.cfg.VARS.application,
notShownCommands = notShownCommands)
- logger.write(src.printcolors.printc("OK"), 3)
+
+ logger.write(src.printcolors.printc("OK"), 3)
+ except:
+ logger.write(src.printcolors.printc("KO"), 3)
+ logger.write(" problem update hat.xml", 3)
+
logger.write("\n", 3)
# open the hat xml in the user editor
if not options.no_browser:
- logger.write(_("\nOpening the log file\n"), 3)
+ logger.write(_("\nOpening the hat log file %s\n" % xmlHatFilePath), 3)
src.system.show_in_editor(runner.cfg.USER.browser, xmlHatFilePath, logger)
- return 0
\ No newline at end of file
+ else:
+ logger.write("\nHat log File is %s\n" % xmlHatFilePath, 3)
+ return 0