3 # Copyright (C) 2010-2012 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
23 # Define all possible option for the shell command : sat shell <options>
24 parser = src.options.Options()
25 parser.add_option('c', 'command', 'string', 'command',
26 _('Mandatory: The shell command to execute.'), "")
29 '''method that is called when salomeTools is called with --help option.
31 :return: The text to display for the shell command description.
34 return _("Executes the shell command passed as argument.\n\nexample:"
35 "\nsat shell --command \"ls \\-l /tmp\"")
37 def run(args, runner, logger):
38 '''method that is called when salomeTools is called with shell parameter.
42 (options, args) = parser.parse_args(args)
44 # Make sure the command option has been called
45 if not options.command:
46 message = _("The option --command is required\n")
47 logger.write(src.printcolors.printcError(message))
50 # Print the input command
51 msg = _("Command to execute:\n%s\nExecution ... " % options.command)
54 # Call the input command
55 res = subprocess.call(options.command,
57 stdout=logger.logTxtFile,
58 stderr=subprocess.STDOUT)
60 # Format the result to be 0 (success) or 1 (fail)
63 logger.write(src.printcolors.printc("KO"), 3)
65 logger.write(src.printcolors.printc("OK"), 3)