| Index: grit/tool/interface.py
 | 
| ===================================================================
 | 
| --- grit/tool/interface.py	(revision 0)
 | 
| +++ grit/tool/interface.py	(revision 0)
 | 
| @@ -0,0 +1,59 @@
 | 
| +#!/usr/bin/python2.4
 | 
| +# Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
 | 
| +# Use of this source code is governed by a BSD-style license that can be
 | 
| +# found in the LICENSE file.
 | 
| +
 | 
| +'''Base class and interface for tools.
 | 
| +'''
 | 
| +
 | 
| +import sys
 | 
| +
 | 
| +class Tool(object):
 | 
| +  '''Base class for all tools.  Tools should use their docstring (i.e. the
 | 
| +  class-level docstring) for the help they want to have printed when they
 | 
| +  are invoked.'''
 | 
| +
 | 
| +  #
 | 
| +  # Interface (abstract methods)
 | 
| +  #
 | 
| +
 | 
| +  def ShortDescription(self):
 | 
| +    '''Returns a short description of the functionality of the tool.'''
 | 
| +    raise NotImplementedError()
 | 
| +
 | 
| +  def Run(self, global_options, my_arguments):
 | 
| +    '''Runs the tool.
 | 
| +
 | 
| +    Args:
 | 
| +      global_options: object grit_runner.Options
 | 
| +      my_arguments: [arg1 arg2 ...]
 | 
| +
 | 
| +    Return:
 | 
| +      0 for success, non-0 for error
 | 
| +    '''
 | 
| +    raise NotImplementedError()
 | 
| +
 | 
| +  #
 | 
| +  # Base class implementation
 | 
| +  #
 | 
| +
 | 
| +  def __init__(self):
 | 
| +    self.o = None
 | 
| +
 | 
| +  def SetOptions(self, opts):
 | 
| +    self.o = opts
 | 
| +
 | 
| +  def Out(self, text):
 | 
| +    '''Always writes out 'text'.'''
 | 
| +    self.o.output_stream.write(text)
 | 
| +
 | 
| +  def VerboseOut(self, text):
 | 
| +    '''Writes out 'text' if the verbose option is on.'''
 | 
| +    if self.o.verbose:
 | 
| +      self.o.output_stream.write(text)
 | 
| +
 | 
| +  def ExtraVerboseOut(self, text):
 | 
| +    '''Writes out 'text' if the extra-verbose option is on.
 | 
| +    '''
 | 
| +    if self.o.extra_verbose:
 | 
| +      self.o.output_stream.write(text)
 | 
| 
 | 
| Property changes on: grit/tool/interface.py
 | 
| ___________________________________________________________________
 | 
| Added: svn:eol-style
 | 
|    + LF
 | 
| 
 | 
| 
 |