samba-tool: Add long_description and epilog to Command class
authorGiampaolo Lauria <lauria2@yahoo.com>
Fri, 29 Jul 2011 21:04:45 +0000 (17:04 -0400)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 9 Sep 2011 05:24:01 +0000 (15:24 +1000)
long_description and epilog should now be defined for each command.
Their string value will be printed whenever the user invokes the
command w/ the -h or --help
long_desciption will be printed after the usage statement.
epilog will be printed after the options are defined

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
source4/scripting/python/samba/netcmd/__init__.py

index 360134644bd7cb4b2c65abf50b04a92a45544788..6d6d59ac187e62572f38a5c6711b1bd59a280555 100644 (file)
@@ -40,6 +40,8 @@ class Command(object):
 
     # synopsis must be defined in all subclasses in order to provide the command usage
     synopsis = ""
+    # long_description is a string describing the command in details
+    long_description = ""
     takes_args = []
     takes_options = []
     takes_optiongroups = {
@@ -47,6 +49,8 @@ class Command(object):
         "credopts": options.CredentialsOptions,
         "versionopts": options.VersionOptions,
         }
+    # This epilog will print at the end when the user invokes the command w/ -h or --help
+    epilog = ""
     outf = sys.stdout
 
     def usage(self, *args):
@@ -88,7 +92,8 @@ class Command(object):
         sys.exit(1)
 
     def _create_parser(self):
-        parser = optparse.OptionParser(self.synopsis)
+        parser = optparse.OptionParser(usage=self.synopsis, epilog=self.epilog, 
+                                       description=self.long_description)
         parser.add_options(self.takes_options)
         optiongroups = {}
         for name, optiongroup in self.takes_optiongroups.iteritems():