diff options
author | Hans Ulrich Niedermann <hun@n-dimensional.de> | 2011-02-10 16:39:03 +0100 |
---|---|---|
committer | Jesse Keating <jkeating@redhat.com> | 2011-02-09 20:36:46 -0700 |
commit | 6faf450a35601ceb8bafeb9e4f2fdd1a7c0304f9 (patch) | |
tree | b6814ef80d86f9241df525bfb8c770823705dfbe /src/pyfedpkg | |
parent | b078a5862615dcb328f7441fb2bd006f824be0d1 (diff) | |
download | fedora-packager-6faf450a35601ceb8bafeb9e4f2fdd1a7c0304f9.tar.gz fedora-packager-6faf450a35601ceb8bafeb9e4f2fdd1a7c0304f9.tar.xz fedora-packager-6faf450a35601ceb8bafeb9e4f2fdd1a7c0304f9.zip |
Move location/name of man_page module
Move location/name of man_page module (out of the
pyfedpkg module/namespace) in order to avoid
importing pyfedpkg for man page generation.
Diffstat (limited to 'src/pyfedpkg')
-rw-r--r-- | src/pyfedpkg/man_page.py | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/src/pyfedpkg/man_page.py b/src/pyfedpkg/man_page.py deleted file mode 100644 index 117ad62..0000000 --- a/src/pyfedpkg/man_page.py +++ /dev/null @@ -1,146 +0,0 @@ -# Print a man page from the help texts. - - -import argparse -import sys -import datetime - - -# We could substitute the "" in .TH with the fedpkg version if we knew it -man_header = """\ -.\" man page for fedpkg -.TH fedpkg 1 "%(today)s" "" "fedora\-packager" -.SH "NAME" -fedpkg \- Fedora Packaging utility -.SH "SYNOPSIS" -.B "fedpkg" -[ -.I global_options -] -.I "command" -[ -.I command_options -] -[ -.I command_arguments -] -.br -.B "fedpkg" -.B "help" -.br -.B "fedpkg" -.I "command" -.B "\-\-help" -.SH "DESCRIPTION" -.B "fedpkg" -is a script to interact with the Fedora Packaging system. -""" - -man_footer = """\ -.SH "SEE ALSO" -.UR "https://fedorahosted.org/fedora\-packager/" -.BR "https://fedorahosted.org/fedora\-packager/" -""" - -class ManFormatter(object): - - def __init__(self, man): - self.man = man - - def write(self, data): - #print "MF:", repr(data) - for line in data.split('\n'): - #print 'MFL:', line - self.man.write(' %s\n' % line) - - -def strip_usage(s): - """Strip "usage: " string from beginning of string if present""" - if s.startswith('usage: '): - return s.replace('usage: ', '', 1) - else: - return s - - -def man_constants(): - """Global constants for man file templates""" - today = datetime.date.today() - today_manstr = today.strftime('%Y\-%m\-%d') - return {'today': today_manstr} - - -def generate(parser, subparsers): - """\ - Generate the man page on stdout - - Given the argparse based parser and subparsers arguments, generate - the corresponding man page and write it to stdout. - """ - - # Not nice, but works: Redirect any print statement output to - # stderr to avoid clobbering the man page output on stdout. - man_file = sys.stdout - sys.stdout = sys.stderr - - mf = ManFormatter(man_file) - - choices = subparsers.choices - k = choices.keys() - k.sort() - - man_file.write(man_header % man_constants()) - - helptext = parser.format_help() - helptext = strip_usage(helptext) - helptextsplit = helptext.split('\n') - helptextsplit = [ line for line in helptextsplit - if not line.startswith(' -h, --help') ] - - man_file.write('.SS "%s"\n' % ("Global Options",)) - - outflag = False - for line in helptextsplit: - if line == "optional arguments:": - outflag = True - elif line == "": - outflag = False - elif outflag: - man_file.write("%s\n" % line) - - help_texts = {} - for pa in subparsers._choices_actions: - help_texts[pa.dest] = getattr(pa, 'help', None) - - man_file.write('.SH "COMMAND OVERVIEW"\n') - - for command in k: - cmdparser = choices[command] - if not cmdparser.add_help: - continue - usage = cmdparser.format_usage() - usage = strip_usage(usage) - usage = ''.join(usage.split('\n')) - usage = ' '.join(usage.split()) - if help_texts[command]: - man_file.write('.TP\n.B "%s"\n%s\n' % (usage, help_texts[command])) - else: - man_file.write('.TP\n.B "%s"\n' % (usage)) - - man_file.write('.SH "COMMAND REFERENCE"\n') - for command in k: - cmdparser = choices[command] - if not cmdparser.add_help: - continue - - man_file.write('.SS "%s"\n' % cmdparser.prog) - - help = help_texts[command] - if help and not cmdparser.description: - if not help.endswith('.'): help = "%s." % help - cmdparser.description = help - - formatter = cmdparser.formatter_class(cmdparser.prog) - h = cmdparser.format_help() - mf.write(h) - - man_file.write(man_footer) |