#!/usr/bin/env python import sys from optparse import OptionParser from cStringIO import StringIO class DmOptionParser(OptionParser): def __init__(self): OptionParser.__init__(self, add_help_option=False) def replaceKeys(self, output): replacementMap = { 'usage:' : 'Usage:', 'options:' : 'Options:', } result = output for (key, value) in replacementMap.items(): result = result.replace(key, value) return result def printUsage(self, file=None): self.print_usage(file) # Replaces base class method def print_usage(self, file=None): sysStdout = sys.stdout cliStdout = StringIO() sys.stdout = cliStdout OptionParser.print_usage(self, file) sys.stdout = sysStdout print self.replaceKeys(cliStdout.getvalue()) def printHelp(self, file=None): self.printHelp(file) # Replaces base class method def print_help(self, file=None): sysStdout = sys.stdout cliStdout = StringIO() sys.stdout = cliStdout OptionParser.print_help(self, file) sys.stdout = sysStdout print self.replaceKeys(cliStdout.getvalue()) ####################################################################### # Testing if __name__ == '__main__': p = DmOptionParser() p.add_option('-f', '--file', dest='filename', help='write report to FILE', metavar='FILE') p.add_option('-q', '--quiet', action='store_false', dest='verbose', default=True, help='do not print log messages to standard output') p.parse_args() p.print_usage() p.print_help()