Forked from
DM / dm-docs
261 commits behind, 523 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
dmOptionParser.py 1.64 KiB
#!/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()