Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 3655:da361aa7a118
alphabetize help_ in commands
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 15 Nov 2006 15:51:58 -0600 |
parents | c15c5aedaf47 |
children | 194e2bcf338e |
comparison
equal
deleted
inserted
replaced
3654:c15c5aedaf47 | 3655:da361aa7a118 |
---|---|
99 "copy remote options to ui tree" | 99 "copy remote options to ui tree" |
100 if opts.get('ssh'): | 100 if opts.get('ssh'): |
101 ui.setconfig("ui", "ssh", opts['ssh']) | 101 ui.setconfig("ui", "ssh", opts['ssh']) |
102 if opts.get('remotecmd'): | 102 if opts.get('remotecmd'): |
103 ui.setconfig("ui", "remotecmd", opts['remotecmd']) | 103 ui.setconfig("ui", "remotecmd", opts['remotecmd']) |
104 | |
105 def help_(ui, name=None, with_version=False): | |
106 """show help for a command, extension, or list of commands | |
107 | |
108 With no arguments, print a list of commands and short help. | |
109 | |
110 Given a command name, print help for that command. | |
111 | |
112 Given an extension name, print help for that extension, and the | |
113 commands it provides.""" | |
114 option_lists = [] | |
115 | |
116 def helpcmd(name): | |
117 if with_version: | |
118 version_(ui) | |
119 ui.write('\n') | |
120 aliases, i = findcmd(ui, name) | |
121 # synopsis | |
122 ui.write("%s\n\n" % i[2]) | |
123 | |
124 # description | |
125 doc = i[0].__doc__ | |
126 if not doc: | |
127 doc = _("(No help text available)") | |
128 if ui.quiet: | |
129 doc = doc.splitlines(0)[0] | |
130 ui.write("%s\n" % doc.rstrip()) | |
131 | |
132 if not ui.quiet: | |
133 # aliases | |
134 if len(aliases) > 1: | |
135 ui.write(_("\naliases: %s\n") % ', '.join(aliases[1:])) | |
136 | |
137 # options | |
138 if i[1]: | |
139 option_lists.append(("options", i[1])) | |
140 | |
141 def helplist(select=None): | |
142 h = {} | |
143 cmds = {} | |
144 for c, e in table.items(): | |
145 f = c.split("|", 1)[0] | |
146 if select and not select(f): | |
147 continue | |
148 if name == "shortlist" and not f.startswith("^"): | |
149 continue | |
150 f = f.lstrip("^") | |
151 if not ui.debugflag and f.startswith("debug"): | |
152 continue | |
153 doc = e[0].__doc__ | |
154 if not doc: | |
155 doc = _("(No help text available)") | |
156 h[f] = doc.splitlines(0)[0].rstrip() | |
157 cmds[f] = c.lstrip("^") | |
158 | |
159 fns = h.keys() | |
160 fns.sort() | |
161 m = max(map(len, fns)) | |
162 for f in fns: | |
163 if ui.verbose: | |
164 commands = cmds[f].replace("|",", ") | |
165 ui.write(" %s:\n %s\n"%(commands, h[f])) | |
166 else: | |
167 ui.write(' %-*s %s\n' % (m, f, h[f])) | |
168 | |
169 def helpext(name): | |
170 try: | |
171 mod = findext(name) | |
172 except KeyError: | |
173 raise UnknownCommand(name) | |
174 | |
175 doc = (mod.__doc__ or _('No help text available')).splitlines(0) | |
176 ui.write(_('%s extension - %s\n') % (name.split('.')[-1], doc[0])) | |
177 for d in doc[1:]: | |
178 ui.write(d, '\n') | |
179 | |
180 ui.status('\n') | |
181 if ui.verbose: | |
182 ui.status(_('list of commands:\n\n')) | |
183 else: | |
184 ui.status(_('list of commands (use "hg help -v %s" ' | |
185 'to show aliases and global options):\n\n') % name) | |
186 | |
187 modcmds = dict.fromkeys([c.split('|', 1)[0] for c in mod.cmdtable]) | |
188 helplist(modcmds.has_key) | |
189 | |
190 if name and name != 'shortlist': | |
191 try: | |
192 helpcmd(name) | |
193 except UnknownCommand: | |
194 helpext(name) | |
195 | |
196 else: | |
197 # program name | |
198 if ui.verbose or with_version: | |
199 version_(ui) | |
200 else: | |
201 ui.status(_("Mercurial Distributed SCM\n")) | |
202 ui.status('\n') | |
203 | |
204 # list of commands | |
205 if name == "shortlist": | |
206 ui.status(_('basic commands (use "hg help" ' | |
207 'for the full list or option "-v" for details):\n\n')) | |
208 elif ui.verbose: | |
209 ui.status(_('list of commands:\n\n')) | |
210 else: | |
211 ui.status(_('list of commands (use "hg help -v" ' | |
212 'to show aliases and global options):\n\n')) | |
213 | |
214 helplist() | |
215 | |
216 # global options | |
217 if ui.verbose: | |
218 option_lists.append(("global options", globalopts)) | |
219 | |
220 # list all option lists | |
221 opt_output = [] | |
222 for title, options in option_lists: | |
223 opt_output.append(("\n%s:\n" % title, None)) | |
224 for shortopt, longopt, default, desc in options: | |
225 if "DEPRECATED" in desc and not ui.verbose: continue | |
226 opt_output.append(("%2s%s" % (shortopt and "-%s" % shortopt, | |
227 longopt and " --%s" % longopt), | |
228 "%s%s" % (desc, | |
229 default | |
230 and _(" (default: %s)") % default | |
231 or ""))) | |
232 | |
233 if opt_output: | |
234 opts_len = max([len(line[0]) for line in opt_output if line[1]]) | |
235 for first, second in opt_output: | |
236 if second: | |
237 ui.write(" %-*s %s\n" % (opts_len, first, second)) | |
238 else: | |
239 ui.write("%s\n" % first) | |
240 | 104 |
241 # Commands start here, listed alphabetically | 105 # Commands start here, listed alphabetically |
242 | 106 |
243 def add(ui, repo, *pats, **opts): | 107 def add(ui, repo, *pats, **opts): |
244 """add the specified files on the next commit | 108 """add the specified files on the next commit |
1216 else: | 1080 else: |
1217 heads = repo.heads() | 1081 heads = repo.heads() |
1218 displayer = cmdutil.show_changeset(ui, repo, opts) | 1082 displayer = cmdutil.show_changeset(ui, repo, opts) |
1219 for n in heads: | 1083 for n in heads: |
1220 displayer.show(changenode=n) | 1084 displayer.show(changenode=n) |
1085 | |
1086 def help_(ui, name=None, with_version=False): | |
1087 """show help for a command, extension, or list of commands | |
1088 | |
1089 With no arguments, print a list of commands and short help. | |
1090 | |
1091 Given a command name, print help for that command. | |
1092 | |
1093 Given an extension name, print help for that extension, and the | |
1094 commands it provides.""" | |
1095 option_lists = [] | |
1096 | |
1097 def helpcmd(name): | |
1098 if with_version: | |
1099 version_(ui) | |
1100 ui.write('\n') | |
1101 aliases, i = findcmd(ui, name) | |
1102 # synopsis | |
1103 ui.write("%s\n\n" % i[2]) | |
1104 | |
1105 # description | |
1106 doc = i[0].__doc__ | |
1107 if not doc: | |
1108 doc = _("(No help text available)") | |
1109 if ui.quiet: | |
1110 doc = doc.splitlines(0)[0] | |
1111 ui.write("%s\n" % doc.rstrip()) | |
1112 | |
1113 if not ui.quiet: | |
1114 # aliases | |
1115 if len(aliases) > 1: | |
1116 ui.write(_("\naliases: %s\n") % ', '.join(aliases[1:])) | |
1117 | |
1118 # options | |
1119 if i[1]: | |
1120 option_lists.append(("options", i[1])) | |
1121 | |
1122 def helplist(select=None): | |
1123 h = {} | |
1124 cmds = {} | |
1125 for c, e in table.items(): | |
1126 f = c.split("|", 1)[0] | |
1127 if select and not select(f): | |
1128 continue | |
1129 if name == "shortlist" and not f.startswith("^"): | |
1130 continue | |
1131 f = f.lstrip("^") | |
1132 if not ui.debugflag and f.startswith("debug"): | |
1133 continue | |
1134 doc = e[0].__doc__ | |
1135 if not doc: | |
1136 doc = _("(No help text available)") | |
1137 h[f] = doc.splitlines(0)[0].rstrip() | |
1138 cmds[f] = c.lstrip("^") | |
1139 | |
1140 fns = h.keys() | |
1141 fns.sort() | |
1142 m = max(map(len, fns)) | |
1143 for f in fns: | |
1144 if ui.verbose: | |
1145 commands = cmds[f].replace("|",", ") | |
1146 ui.write(" %s:\n %s\n"%(commands, h[f])) | |
1147 else: | |
1148 ui.write(' %-*s %s\n' % (m, f, h[f])) | |
1149 | |
1150 def helpext(name): | |
1151 try: | |
1152 mod = findext(name) | |
1153 except KeyError: | |
1154 raise UnknownCommand(name) | |
1155 | |
1156 doc = (mod.__doc__ or _('No help text available')).splitlines(0) | |
1157 ui.write(_('%s extension - %s\n') % (name.split('.')[-1], doc[0])) | |
1158 for d in doc[1:]: | |
1159 ui.write(d, '\n') | |
1160 | |
1161 ui.status('\n') | |
1162 if ui.verbose: | |
1163 ui.status(_('list of commands:\n\n')) | |
1164 else: | |
1165 ui.status(_('list of commands (use "hg help -v %s" ' | |
1166 'to show aliases and global options):\n\n') % name) | |
1167 | |
1168 modcmds = dict.fromkeys([c.split('|', 1)[0] for c in mod.cmdtable]) | |
1169 helplist(modcmds.has_key) | |
1170 | |
1171 if name and name != 'shortlist': | |
1172 try: | |
1173 helpcmd(name) | |
1174 except UnknownCommand: | |
1175 helpext(name) | |
1176 | |
1177 else: | |
1178 # program name | |
1179 if ui.verbose or with_version: | |
1180 version_(ui) | |
1181 else: | |
1182 ui.status(_("Mercurial Distributed SCM\n")) | |
1183 ui.status('\n') | |
1184 | |
1185 # list of commands | |
1186 if name == "shortlist": | |
1187 ui.status(_('basic commands (use "hg help" ' | |
1188 'for the full list or option "-v" for details):\n\n')) | |
1189 elif ui.verbose: | |
1190 ui.status(_('list of commands:\n\n')) | |
1191 else: | |
1192 ui.status(_('list of commands (use "hg help -v" ' | |
1193 'to show aliases and global options):\n\n')) | |
1194 | |
1195 helplist() | |
1196 | |
1197 # global options | |
1198 if ui.verbose: | |
1199 option_lists.append(("global options", globalopts)) | |
1200 | |
1201 # list all option lists | |
1202 opt_output = [] | |
1203 for title, options in option_lists: | |
1204 opt_output.append(("\n%s:\n" % title, None)) | |
1205 for shortopt, longopt, default, desc in options: | |
1206 if "DEPRECATED" in desc and not ui.verbose: continue | |
1207 opt_output.append(("%2s%s" % (shortopt and "-%s" % shortopt, | |
1208 longopt and " --%s" % longopt), | |
1209 "%s%s" % (desc, | |
1210 default | |
1211 and _(" (default: %s)") % default | |
1212 or ""))) | |
1213 | |
1214 if opt_output: | |
1215 opts_len = max([len(line[0]) for line in opt_output if line[1]]) | |
1216 for first, second in opt_output: | |
1217 if second: | |
1218 ui.write(" %-*s %s\n" % (opts_len, first, second)) | |
1219 else: | |
1220 ui.write("%s\n" % first) | |
1221 | 1221 |
1222 def identify(ui, repo): | 1222 def identify(ui, repo): |
1223 """print information about the working copy | 1223 """print information about the working copy |
1224 | 1224 |
1225 Print a short summary of the current state of the repo. | 1225 Print a short summary of the current state of the repo. |