changeset 65:b7b61e0fd23e

Added the available commands list to the `--help` output of Babel's binary.
author palgarvio
date Fri, 08 Jun 2007 12:53:57 +0000
parents 7eb6fea17864
children d1a7425739d3
files babel/messages/frontend.py
diffstat 1 files changed, 19 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/babel/messages/frontend.py
+++ b/babel/messages/frontend.py
@@ -317,25 +317,39 @@
     usage = '%%prog %s [options] %s'
     version = '%%prog %s' % VERSION
     commands = ['extract', 'init']
+    command_descriptions = {
+        'extract': 'extract messages from source files and generate a POT file',
+        'init': 'create new message catalogs from a template'
+    }
 
     def run(self, argv=sys.argv):
         """Main entry point of the command-line interface.
 
         :param argv: list of arguments passed on the command-line
         """
-        parser = OptionParser(usage=self.usage % ('subcommand', '[args]'),
+        self.parser = OptionParser(usage=self.usage % ('subcommand', '[args]'),
                               version=self.version)
-        parser.disable_interspersed_args()
-        options, args = parser.parse_args(argv[1:])
+        self.parser.disable_interspersed_args()
+        self.parser.print_help = self._help
+        options, args = self.parser.parse_args(argv[1:])
         if not args:
-            parser.error('incorrect number of arguments')
+            self.parser.error('incorrect number of arguments')
 
         cmdname = args[0]
         if cmdname not in self.commands:
-            parser.error('unknown subcommand "%s"' % cmdname)
+            self.parser.error('unknown subcommand "%s"' % cmdname)
 
         getattr(self, cmdname)(args[1:])
 
+    def _help(self):
+        print self.parser.format_help()
+        print "Commands:"
+        longest = max([len(command) for command in self.commands])
+        format = "    %" + str(longest) + "s  %s"
+        self.commands.sort()
+        for command in self.commands:
+            print format % (command, self.command_descriptions[command])
+            
     def extract(self, argv):
         """Subcommand for extracting messages from source files and generating
         a POT file.
Copyright (C) 2012-2017 Edgewall Software