| OLD | NEW |
| (Empty) |
| 1 #!/usr/bin/env python | |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 3 # Use of this source code is governed by a BSD-style license that can be | |
| 4 # found in the LICENSE file. | |
| 5 | |
| 6 '''Base class and interface for tools. | |
| 7 ''' | |
| 8 | |
| 9 | |
| 10 class Tool(object): | |
| 11 '''Base class for all tools. Tools should use their docstring (i.e. the | |
| 12 class-level docstring) for the help they want to have printed when they | |
| 13 are invoked.''' | |
| 14 | |
| 15 # | |
| 16 # Interface (abstract methods) | |
| 17 # | |
| 18 | |
| 19 def ShortDescription(self): | |
| 20 '''Returns a short description of the functionality of the tool.''' | |
| 21 raise NotImplementedError() | |
| 22 | |
| 23 def Run(self, global_options, my_arguments): | |
| 24 '''Runs the tool. | |
| 25 | |
| 26 Args: | |
| 27 global_options: object grit_runner.Options | |
| 28 my_arguments: [arg1 arg2 ...] | |
| 29 | |
| 30 Return: | |
| 31 0 for success, non-0 for error | |
| 32 ''' | |
| 33 raise NotImplementedError() | |
| 34 | |
| 35 # | |
| 36 # Base class implementation | |
| 37 # | |
| 38 | |
| 39 def __init__(self): | |
| 40 self.o = None | |
| 41 | |
| 42 def SetOptions(self, opts): | |
| 43 self.o = opts | |
| 44 | |
| 45 def Out(self, text): | |
| 46 '''Always writes out 'text'.''' | |
| 47 self.o.output_stream.write(text) | |
| 48 | |
| 49 def VerboseOut(self, text): | |
| 50 '''Writes out 'text' if the verbose option is on.''' | |
| 51 if self.o.verbose: | |
| 52 self.o.output_stream.write(text) | |
| 53 | |
| 54 def ExtraVerboseOut(self, text): | |
| 55 '''Writes out 'text' if the extra-verbose option is on. | |
| 56 ''' | |
| 57 if self.o.extra_verbose: | |
| 58 self.o.output_stream.write(text) | |
| OLD | NEW |