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
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
17
"""man.py - create man page from built-in bzr help and static text
81
80
cmd_help = cmd_object.help()
83
82
firstline = cmd_help.split('\n', 1)[0]
84
usage = cmd_object._usage()
83
usage = bzrlib.help.command_usage(cmd_object)
85
84
tmp = '.TP\n.B "%s"\n%s\n' % (usage, firstline)
86
85
output = output + tmp
92
91
def getcommand_help(params):
93
92
"""Shows individual options for a bzr command"""
94
93
output='.SH "COMMAND REFERENCE"\n'
96
94
for cmd_name in command_name_list():
97
95
cmd_object = bzrlib.commands.get_cmd_object(cmd_name)
98
96
if cmd_object.hidden:
100
formatted[cmd_name] = format_command(params, cmd_object)
101
for alias in cmd_object.aliases:
102
formatted[alias] = format_alias(params, alias, cmd_name)
103
for cmd_name in sorted(formatted):
104
output += formatted[cmd_name]
98
output = output + format_command(params, cmd_object)
108
102
def format_command (params, cmd):
109
103
"""Provides long help for each public command"""
110
subsection_header = '.SS "%s"\n' % (cmd._usage())
104
subsection_header = '.SS "%s"\n' % (bzrlib.help.command_usage(cmd))
111
105
doc = "%s\n" % (cmd.__doc__)
112
doc = bzrlib.help_topics.help_as_plain_text(cmd.help())
115
109
options = cmd.options()
117
111
option_str = "\nOptions:\n"
118
112
for option_name, option in sorted(options.items()):
119
for name, short_name, argname, help in option.iter_switches():
120
if option.is_hidden(name):
123
if argname is not None:
126
l += ', -' + short_name
127
l += (30 - len(l)) * ' ' + (help or '')
128
wrapped = textwrap.fill(l, initial_indent='',
129
subsequent_indent=30*' ',
130
break_long_words=False,
132
option_str = option_str + wrapped + '\n'
113
l = ' --' + option_name
114
if option.type is not None:
115
l += ' ' + option.argname.upper()
116
short_name = option.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'
140
133
aliases_str += ', '.join(cmd.aliases)
141
134
aliases_str += '\n'
144
see_also = cmd.get_see_also()
146
see_also_str += '\nSee also: '
147
see_also_str += ', '.join(see_also)
150
return subsection_header + option_str + aliases_str + see_also_str + "\n" + doc + "\n"
153
def format_alias(params, alias, cmd_name):
154
help = '.SS "bzr %s"\n' % alias
155
help += 'Alias for "%s", see "bzr %s".\n' % (cmd_name, cmd_name)
136
return subsection_header + option_str + aliases_str + "\n" + doc + "\n"
159
139
man_preamble = """\
160
.\\\"Man page for Bazaar (%(bzrcmd)s)
140
Man page for Bazaar (%(bzrcmd)s)
162
142
.\\\" Large parts of this file are autogenerated from the output of
163
143
.\\\" \"%(bzrcmd)s help commands\"
201
is to look for shell plugin external commands.
181
is to look for external command.
204
184
E-Mail address of the user. Overrides default user config.
207
E-Mail address of the user. Overrides default user config.
187
E-Mail address of the user. Overriddes default user config.
210
190
Editor for editing commit messages
242
222
log10 = log --short -r -10..-1
244
.UR http://www.bazaar.canonical.com/
245
.BR http://www.bazaar.canonical.com/
224
.UR http://www.bazaar-vcs.org/
225
.BR http://www.bazaar-vcs.org/