3 # Copyright (C) 2010-2013 CEA/DEN
5 # This library is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU Lesser General Public
7 # License as published by the Free Software Foundation; either
8 # version 2.1 of the License.
10 # This library is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # Lesser General Public License for more details.
15 # You should have received a copy of the GNU Lesser General Public
16 # License along with this library; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 '''method that is called when salomeTools is called with --help option.
28 :return: The text to display for the run command description.
31 return _("This command runs the application launcher"
32 " with the given arguments.\n\nexample:\nsat run SALOME-master")
34 def run(args, runner, logger):
35 '''method that is called when salomeTools is called with run parameter.
39 src.check_config_has_application(runner.cfg)
42 src.check_config_has_profile(runner.cfg)
44 # Determine launcher path
45 launcher_name = runner.cfg.APPLICATION.profile.launcher_name
46 launcher_dir = runner.cfg.APPLICATION.workdir
48 # Check the launcher existence
49 if launcher_name not in os.listdir(launcher_dir):
50 profile_name = runner.cfg.APPLICATION.profile.module
51 profile_install_dir = src.product.get_product_config(runner.cfg,
52 profile_name).install_dir
53 launcher_dir = os.path.join(profile_install_dir, 'bin', 'salome')
55 launcher_path = os.path.join(launcher_dir, launcher_name)
56 launcher_path = os.path.abspath(launcher_path)
58 if not os.path.exists(launcher_path):
59 message = _("The launcher at path %s is missing.\nDid you run the"
60 " command 'sat launcher' ?\n") % launcher_path
61 raise src.SatException(message)
63 # Determine the command to launch (add the additional arguments)
64 command = launcher_path + " " + " ".join(args)
67 src.printcolors.print_value(logger, _("Executed command"), command, 2)
68 logger.write(_("Launching ...\n"))
72 subprocess.call(command,
74 stdout=logger.logTxtFile,
75 stderr=subprocess.STDOUT)
77 # Display information : how to get the logs
78 messageFirstPart = _("\nEnd of execution. To see the traces, "
79 "please tap the following command :\n")
80 messageSecondPart = src.printcolors.printcLabel(
81 runner.cfg.VARS.salometoolsway +
84 runner.cfg.VARS.application + "\n")
85 logger.write(" %s\n" %(messageFirstPart + messageSecondPart), 2)