X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=commands%2Flog.py;h=5ecf7028b9c9309054348fbf89a799b15217d683;hb=fe93dec3df59f9238c50e52cce21d939fa4ccc1c;hp=08e5f23915a38908f8edde5a9f32aa72881dbb35;hpb=aaf1f0cac95c1e3baf0228751db882316eae35c7;p=tools%2Fsat.git diff --git a/commands/log.py b/commands/log.py index 08e5f23..5ecf702 100644 --- a/commands/log.py +++ b/commands/log.py @@ -34,20 +34,18 @@ import src # Define all possible option for log command : sat log 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. @@ -193,8 +191,12 @@ def description(): :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. @@ -202,9 +204,9 @@ def run(args, runner, logger): # 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), @@ -257,24 +259,31 @@ def run(args, runner, logger): 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) @@ -322,14 +331,22 @@ def run(args, runner, 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