~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to tools/doc_generate/autodoc_man.py

  • Committer: Andrew Bennetts
  • Date: 2008-09-05 10:48:03 UTC
  • mto: This revision was merged to the branch mainline in revision 3693.
  • Revision ID: andrew.bennetts@canonical.com-20080905104803-6g72dz6wcldosfs2
Remove monkey-patching of branch._ensure_real from test_remote.py.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
# it under the terms of the GNU General Public License as published by
5
5
# the Free Software Foundation; either version 2 of the License, or
6
6
# (at your option) any later version.
7
 
 
 
7
#
8
8
# This program is distributed in the hope that it will be useful,
9
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
11
# GNU General Public License for more details.
12
 
 
 
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28
28
 
29
29
import bzrlib
30
30
import bzrlib.help
 
31
import bzrlib.help_topics
31
32
import bzrlib.commands
32
33
 
33
34
 
80
81
        cmd_help = cmd_object.help()
81
82
        if cmd_help:
82
83
            firstline = cmd_help.split('\n', 1)[0]
83
 
            usage = bzrlib.help.command_usage(cmd_object)
 
84
            usage = cmd_object._usage()
84
85
            tmp = '.TP\n.B "%s"\n%s\n' % (usage, firstline)
85
86
            output = output + tmp
86
87
        else:
101
102
 
102
103
def format_command (params, cmd):
103
104
    """Provides long help for each public command"""
104
 
    subsection_header = '.SS "%s"\n' % (bzrlib.help.command_usage(cmd))
 
105
    subsection_header = '.SS "%s"\n' % (cmd._usage())
105
106
    doc = "%s\n" % (cmd.__doc__)
106
 
    docsplit = cmd.__doc__.split('\n')
107
 
    doc = '\n'.join([docsplit[0]] + [line[4:] for line in docsplit[1:]])
 
107
    doc = bzrlib.help_topics.help_as_plain_text(cmd.help())
 
108
 
108
109
    option_str = ""
109
110
    options = cmd.options()
110
111
    if options:
111
112
        option_str = "\nOptions:\n"
112
113
        for option_name, option in sorted(options.items()):
113
 
            l = '    --' + option_name
114
 
            if option.type is not None:
115
 
                l += ' ' + option.argname.upper()
116
 
            short_name = option.short_name()
117
 
            if short_name:
118
 
                assert len(short_name) == 1
119
 
                l += ', -' + short_name
120
 
            l += (30 - len(l)) * ' ' + option.help
121
 
            # TODO: Split help over multiple lines with
122
 
            # correct indenting and wrapping.
123
 
            wrapped = textwrap.fill(l, initial_indent='',
124
 
                                    subsequent_indent=30*' ')
125
 
            option_str = option_str + wrapped + '\n'       
126
 
    return subsection_header + option_str + "\n" + doc + "\n"
 
114
            for name, short_name, argname, help in option.iter_switches():
 
115
                if option.is_hidden(name):
 
116
                    continue
 
117
                l = '    --' + name
 
118
                if argname is not None:
 
119
                    l += ' ' + argname
 
120
                if short_name:
 
121
                    assert len(short_name) == 1
 
122
                    l += ', -' + short_name
 
123
                l += (30 - len(l)) * ' ' + (help or '')
 
124
                wrapped = textwrap.fill(l, initial_indent='',
 
125
                                        subsequent_indent=30*' ')
 
126
                option_str = option_str + wrapped + '\n'       
 
127
 
 
128
    aliases_str = ""
 
129
    if cmd.aliases:
 
130
        if len(cmd.aliases) > 1:
 
131
            aliases_str += '\nAliases: '
 
132
        else:
 
133
            aliases_str += '\nAlias: '
 
134
        aliases_str += ', '.join(cmd.aliases)
 
135
        aliases_str += '\n'
 
136
 
 
137
    see_also_str = ""
 
138
    see_also = cmd.get_see_also()
 
139
    if see_also:
 
140
        see_also_str += '\nSee also: '
 
141
        see_also_str += ', '.join(see_also)
 
142
        see_also_str += '\n'
 
143
 
 
144
    return subsection_header + option_str + aliases_str + see_also_str + "\n" + doc + "\n"
127
145
 
128
146
 
129
147
man_preamble = """\
130
 
Man page for %(bzrcmd)s (bazaar-ng)
 
148
Man page for Bazaar (%(bzrcmd)s)
131
149
.\\\"
132
150
.\\\" Large parts of this file are autogenerated from the output of
133
151
.\\\"     \"%(bzrcmd)s help commands\"
139
157
 
140
158
 
141
159
man_head = """\
142
 
.TH bzr 1 "%(datestamp)s" "%(version)s" "bazaar-ng"
 
160
.TH bzr 1 "%(datestamp)s" "%(version)s" "Bazaar"
143
161
.SH "NAME"
144
 
%(bzrcmd)s - bazaar-ng next-generation distributed version control
 
162
Bazaar (%(bzrcmd)s) - next-generation distributed version control
145
163
.SH "SYNOPSIS"
146
164
.B "%(bzrcmd)s"
147
165
.I "command"
156
174
.B "help"
157
175
.I "command"
158
176
.SH "DESCRIPTION"
159
 
bazaar-ng (or
160
 
.B "%(bzrcmd)s"
161
 
) is a project of Canonical to develop an open source distributed version control system that is powerful, friendly, and scalable. Version control means a system that keeps track of previous revisions of software source code or similar information and helps people work on it in teams.
 
177
Bazaar (or %(bzrcmd)s) is a project of Canonical to develop an open source
 
178
distributed version control system that is powerful, friendly, and scalable.
 
179
Version control means a system that keeps track of previous revisions
 
180
of software source code or similar information and helps people work on it in teams.
162
181
"""
163
182
 
164
183
man_foot = """\
167
186
.I "BZRPATH"
168
187
Path where
169
188
.B "%(bzrcmd)s"
170
 
is to look for external command.
 
189
is to look for shell plugin external commands.
171
190
.TP
172
 
.I "BZREMAIL"
 
191
.I "BZR_EMAIL"
173
192
E-Mail address of the user. Overrides default user config.
174
193
.TP
175
194
.I "EMAIL"
176
 
E-Mail address of the user. Overriddes default user config.
 
195
E-Mail address of the user. Overrides default user config.
 
196
.TP
 
197
.I "BZR_EDITOR"
 
198
Editor for editing commit messages
 
199
.TP
 
200
.I "EDITOR"
 
201
Editor for editing commit messages
 
202
.TP
 
203
.I "BZR_PLUGIN_PATH"
 
204
Paths where bzr should look for plugins
 
205
.TP
 
206
.I "BZR_HOME"
 
207
Home directory for bzr
177
208
.SH "FILES"
178
209
.TP
179
 
.I "~/.bazaar/bazaar.conf/"
180
 
Contains the default user config. Only one section, [DEFAULT] is allowed. A 
181
 
typical default config file may be similiar to:
182
 
.br
183
 
.br
 
210
.I "~/.bazaar/bazaar.conf"
 
211
Contains the user's default configuration. The section
184
212
.B [DEFAULT]
185
 
.br
186
 
.B email=John Doe <jdoe@isp.com>
 
213
is used to define general configuration that will be applied everywhere.
 
214
The section
 
215
.B [ALIASES]
 
216
can be used to create command aliases for
 
217
commonly used options.
 
218
 
 
219
A typical config file might look something like:
 
220
 
 
221
.br
 
222
[DEFAULT]
 
223
.br
 
224
email=John Doe <jdoe@isp.com>
 
225
.br
 
226
[ALIASES]
 
227
.br
 
228
commit = commit --strict
 
229
.br
 
230
log10 = log --short -r -10..-1
187
231
.SH "SEE ALSO"
188
232
.UR http://www.bazaar-vcs.org/
189
233
.BR http://www.bazaar-vcs.org/