diff options
Diffstat (limited to 'tools/generate_docs.py')
-rwxr-xr-x | tools/generate_docs.py | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/tools/generate_docs.py b/tools/generate_docs.py new file mode 100755 index 0000000..b27eeba --- /dev/null +++ b/tools/generate_docs.py @@ -0,0 +1,111 @@ +#!/usr/bin/python + +# Copyright 2005 Canonical Ltd. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +"""%(prog)s - generate information from built-in bzr help + +%(prog)s creates a file with information on bzr in one of +several different output formats: + + man man page + bash_completion bash completion script + ... + +Examples: + + python2.4 generated-docs.py man + python2.4 generated-docs.py bash_completion + +Run "%(prog)s --help" for the option reference. +""" +import os +import sys +from optparse import OptionParser + +sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) + +import bzrlib +from bzrlib import ( + commands, + # Don't remove the following import, it triggers a format registration that + # avoid http://pad.lv/956860 + branch, + doc_generate, + ) + + +def main(argv): + parser = OptionParser(usage="""%prog [options] OUTPUT_FORMAT + +Available OUTPUT_FORMAT: + + man man page + rstx man page in ReStructuredText format + bash_completion bash completion script""") + + parser.add_option("-s", "--show-filename", + action="store_true", dest="show_filename", default=False, + help="print default filename on stdout") + + parser.add_option("-o", "--output", dest="filename", metavar="FILE", + help="write output to FILE") + + parser.add_option("-b", "--bzr-name", + dest="bzr_name", default="bzr", metavar="EXEC_NAME", + help="name of bzr executable") + + parser.add_option("-e", "--examples", + action="callback", callback=print_extended_help, + help="Examples of ways to call generate_doc") + + + (options, args) = parser.parse_args(argv) + + if len(args) != 2: + parser.print_help() + sys.exit(1) + + with bzrlib.initialize(): + commands.install_bzr_command_hooks() + infogen_type = args[1] + infogen_mod = doc_generate.get_module(infogen_type) + if options.filename: + outfilename = options.filename + else: + outfilename = infogen_mod.get_filename(options) + if outfilename == "-": + outfile = sys.stdout + else: + outfile = open(outfilename,"w") + if options.show_filename and (outfilename != "-"): + sys.stdout.write(outfilename) + sys.stdout.write('\n') + infogen_mod.infogen(options, outfile) + + +def print_extended_help(option, opt, value, parser): + """ Program help examples + + Prints out the examples stored in the docstring. + + """ + sys.stdout.write(__doc__ % {"prog":sys.argv[0]}) + sys.stdout.write('\n') + sys.exit(0) + +if __name__ == '__main__': + main(sys.argv) |