]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
renamed to CommandFrameWork
authorGuido van Rossum <guido@python.org>
Thu, 27 Apr 1995 23:32:47 +0000 (23:32 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 27 Apr 1995 23:32:47 +0000 (23:32 +0000)
added ready() message
added PostUsageMessage

Demo/pdist/cmdfw.py

index c6eb9169fb765e6c7635fdc46721f0b8ab288e9a..a0c6f5d8ec888ebc2fe163b203d15a56a37096c6 100755 (executable)
@@ -1,7 +1,7 @@
 "Framework for command line interfaces like CVS.  See class CmdFrameWork."
 
 
-class CmdFrameWork:
+class CommandFrameWork:
 
        """Framework class for command line interfaces like CVS.
 
@@ -28,6 +28,8 @@ class CmdFrameWork:
        UsageMessage = \
          "usage: (name)s [flags] subcommand [subflags] [argument] ..."
 
+       PostUsageMessage = None
+
        GlobalFlags = ''
 
        def __init__(self):
@@ -44,6 +46,7 @@ class CmdFrameWork:
                        return self.usage(msg)
                self.options(opts)
                if not args:
+                       self.ready()
                        return self.default()
                else:
                        cmd = args[0]
@@ -62,6 +65,7 @@ class CmdFrameWork:
                        except getopt.error, msg:
                                return self.usage(
                                        "subcommand %s: " % cmd + str(msg))
+                       self.ready()
                        return method(opts, args)
 
        def options(self, opts):
@@ -74,6 +78,10 @@ class CmdFrameWork:
                                print 'option', o, 'value', `a`
                        print "-"*40
 
+       def ready(self):
+               """Called just before calling the subcommand."""
+               pass
+
        def usage(self, msg = None):
                """Print usage message.  Return suitable exit code (2)."""
                if msg: print msg
@@ -100,6 +108,8 @@ class CmdFrameWork:
                        names.sort()
                        for name in names:
                                print docstrings[name]
+               if self.PostUsageMessage:
+                       print self.PostUsageMessage
                return 2
 
        def default(self):
@@ -111,7 +121,7 @@ class CmdFrameWork:
 def test():
        """Test script -- called when this module is run as a script."""
        import sys
-       class Hello(CmdFrameWork):
+       class Hello(CommandFrameWork):
                def do_hello(self, opts, args):
                        "hello -- print 'hello world', needs no arguments"
                        print "Hello, world"