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 |