renamed to CommandFrameWork
added ready() message
added PostUsageMessage
diff --git a/Demo/pdist/cmdfw.py b/Demo/pdist/cmdfw.py
index c6eb916..a0c6f5d 100755
--- a/Demo/pdist/cmdfw.py
+++ b/Demo/pdist/cmdfw.py
@@ -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 @@
 	UsageMessage = \
 	  "usage: (name)s [flags] subcommand [subflags] [argument] ..."
 
+	PostUsageMessage = None
+
 	GlobalFlags = ''
 
 	def __init__(self):
@@ -44,6 +46,7 @@
 			return self.usage(msg)
 		self.options(opts)
 		if not args:
+			self.ready()
 			return self.default()
 		else:
 			cmd = args[0]
@@ -62,6 +65,7 @@
 			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 @@
 				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 @@
 			names.sort()
 			for name in names:
 				print docstrings[name]
+		if self.PostUsageMessage:
+			print self.PostUsageMessage
 		return 2
 
 	def default(self):
@@ -111,7 +121,7 @@
 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"