~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to tools/doc_generate/autodoc_man.py

  • Committer: Wouter van Heyst
  • Date: 2006-06-07 16:05:27 UTC
  • mto: This revision was merged to the branch mainline in revision 1752.
  • Revision ID: larstiq@larstiq.dyndns.org-20060607160527-2b3649154d0e2e84
more code cleanup

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
80
80
        cmd_help = cmd_object.help()
81
81
        if cmd_help:
82
82
            firstline = cmd_help.split('\n', 1)[0]
83
 
            usage = cmd_object._usage()
 
83
            usage = bzrlib.help.command_usage(cmd_object)
84
84
            tmp = '.TP\n.B "%s"\n%s\n' % (usage, firstline)
85
85
            output = output + tmp
86
86
        else:
101
101
 
102
102
def format_command (params, cmd):
103
103
    """Provides long help for each public command"""
104
 
    subsection_header = '.SS "%s"\n' % (cmd._usage())
 
104
    subsection_header = '.SS "%s"\n' % (bzrlib.help.command_usage(cmd))
105
105
    doc = "%s\n" % (cmd.__doc__)
106
 
    doc = cmd.help()
107
 
 
 
106
    docsplit = cmd.__doc__.split('\n')
 
107
    doc = '\n'.join([docsplit[0]] + [line[4:] for line in docsplit[1:]])
108
108
    option_str = ""
109
109
    options = cmd.options()
110
110
    if options:
111
111
        option_str = "\nOptions:\n"
112
112
        for option_name, option in sorted(options.items()):
113
 
            for name, short_name, argname, help in option.iter_switches():
114
 
                l = '    --' + name
115
 
                if argname is not None:
116
 
                    l += ' ' + argname
117
 
                if short_name:
118
 
                    assert len(short_name) == 1
119
 
                    l += ', -' + short_name
120
 
                l += (30 - len(l)) * ' ' + (help or '')
121
 
                wrapped = textwrap.fill(l, initial_indent='',
122
 
                                        subsequent_indent=30*' ')
123
 
                option_str = option_str + wrapped + '\n'       
124
 
 
125
 
    aliases_str = ""
126
 
    if cmd.aliases:
127
 
        if len(cmd.aliases) > 1:
128
 
            aliases_str += '\nAliases: '
129
 
        else:
130
 
            aliases_str += '\nAlias: '
131
 
        aliases_str += ', '.join(cmd.aliases)
132
 
        aliases_str += '\n'
133
 
 
134
 
    see_also_str = ""
135
 
    see_also = cmd.get_see_also()
136
 
    if see_also:
137
 
        see_also_str += '\nSee also: '
138
 
        see_also_str += ', '.join(see_also)
139
 
        see_also_str += '\n'
140
 
 
141
 
    return subsection_header + option_str + aliases_str + see_also_str + "\n" + doc + "\n"
 
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"
142
127
 
143
128
 
144
129
man_preamble = """\
145
 
Man page for Bazaar (%(bzrcmd)s)
 
130
Man page for %(bzrcmd)s (bazaar-ng)
146
131
.\\\"
147
132
.\\\" Large parts of this file are autogenerated from the output of
148
133
.\\\"     \"%(bzrcmd)s help commands\"
154
139
 
155
140
 
156
141
man_head = """\
157
 
.TH bzr 1 "%(datestamp)s" "%(version)s" "Bazaar"
 
142
.TH bzr 1 "%(datestamp)s" "%(version)s" "bazaar-ng"
158
143
.SH "NAME"
159
 
Bazaar (%(bzrcmd)s) - next-generation distributed version control
 
144
%(bzrcmd)s - bazaar-ng next-generation distributed version control
160
145
.SH "SYNOPSIS"
161
146
.B "%(bzrcmd)s"
162
147
.I "command"
171
156
.B "help"
172
157
.I "command"
173
158
.SH "DESCRIPTION"
174
 
Bazaar (or %(bzrcmd)s) is a project of Canonical to develop an open source
175
 
distributed version control system that is powerful, friendly, and scalable.
176
 
Version control means a system that keeps track of previous revisions
177
 
of software source code or similar information and helps people work on it in teams.
 
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.
178
162
"""
179
163
 
180
164
man_foot = """\
183
167
.I "BZRPATH"
184
168
Path where
185
169
.B "%(bzrcmd)s"
186
 
is to look for shell plugin external commands.
 
170
is to look for external command.
187
171
.TP
188
 
.I "BZR_EMAIL"
 
172
.I "BZREMAIL"
189
173
E-Mail address of the user. Overrides default user config.
190
174
.TP
191
175
.I "EMAIL"
192
 
E-Mail address of the user. Overrides default user config.
193
 
.TP
194
 
.I "BZR_EDITOR"
195
 
Editor for editing commit messages
196
 
.TP
197
 
.I "EDITOR"
198
 
Editor for editing commit messages
199
 
.TP
200
 
.I "BZR_PLUGIN_PATH"
201
 
Paths where bzr should look for plugins
202
 
.TP
203
 
.I "BZR_HOME"
204
 
Home directory for bzr
 
176
E-Mail address of the user. Overriddes default user config.
205
177
.SH "FILES"
206
178
.TP
207
 
.I "~/.bazaar/bazaar.conf"
208
 
Contains the user's default configuration. The section
 
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
209
184
.B [DEFAULT]
210
 
is used to define general configuration that will be applied everywhere.
211
 
The section
212
 
.B [ALIASES]
213
 
can be used to create command aliases for
214
 
commonly used options.
215
 
 
216
 
A typical config file might look something like:
217
 
 
218
 
.br
219
 
[DEFAULT]
220
 
.br
221
 
email=John Doe <jdoe@isp.com>
222
 
.br
223
 
[ALIASES]
224
 
.br
225
 
commit = commit --strict
226
 
.br
227
 
log10 = log --short -r -10..-1
 
185
.br
 
186
.B email=John Doe <jdoe@isp.com>
228
187
.SH "SEE ALSO"
229
188
.UR http://www.bazaar-vcs.org/
230
189
.BR http://www.bazaar-vcs.org/