Show More
@@ -14,6 +14,7 b' import context, repair, graphmod, revset' | |||
|
14 | 14 | import changelog |
|
15 | 15 | import bookmarks |
|
16 | 16 | import encoding |
|
17 | import formatter | |
|
17 | 18 | import crecord as crecordmod |
|
18 | 19 | import lock as lockmod |
|
19 | 20 | |
@@ -1493,40 +1494,7 b' def gettemplate(ui, tmpl, style):' | |||
|
1493 | 1494 | if not tmpl: |
|
1494 | 1495 | return None, None |
|
1495 | 1496 | |
|
1496 | # looks like a literal template? | |
|
1497 | if '{' in tmpl: | |
|
1498 | return tmpl, None | |
|
1499 | ||
|
1500 | # perhaps a stock style? | |
|
1501 | if not os.path.split(tmpl)[0]: | |
|
1502 | mapname = (templater.templatepath('map-cmdline.' + tmpl) | |
|
1503 | or templater.templatepath(tmpl)) | |
|
1504 | if mapname and os.path.isfile(mapname): | |
|
1505 | return None, mapname | |
|
1506 | ||
|
1507 | # perhaps it's a reference to [templates] | |
|
1508 | t = ui.config('templates', tmpl) | |
|
1509 | if t: | |
|
1510 | try: | |
|
1511 | tmpl = templater.unquotestring(t) | |
|
1512 | except SyntaxError: | |
|
1513 | tmpl = t | |
|
1514 | return tmpl, None | |
|
1515 | ||
|
1516 | if tmpl == 'list': | |
|
1517 | ui.write(_("available styles: %s\n") % templater.stylelist()) | |
|
1518 | raise util.Abort(_("specify a template")) | |
|
1519 | ||
|
1520 | # perhaps it's a path to a map or a template | |
|
1521 | if ('/' in tmpl or '\\' in tmpl) and os.path.isfile(tmpl): | |
|
1522 | # is it a mapfile for a style? | |
|
1523 | if os.path.basename(tmpl).startswith("map-"): | |
|
1524 | return None, os.path.realpath(tmpl) | |
|
1525 | tmpl = open(tmpl).read() | |
|
1526 | return tmpl, None | |
|
1527 | ||
|
1528 | # constant string? | |
|
1529 | return tmpl, None | |
|
1497 | return formatter.lookuptemplate(ui, 'changeset', tmpl) | |
|
1530 | 1498 | |
|
1531 | 1499 | def show_changeset(ui, repo, opts, buffered=False): |
|
1532 | 1500 | """show one changeset using template or regular display. |
@@ -9,6 +9,8 b' import cPickle' | |||
|
9 | 9 | from node import hex, short |
|
10 | 10 | from i18n import _ |
|
11 | 11 | import encoding, util |
|
12 | import templater | |
|
13 | import os | |
|
12 | 14 | |
|
13 | 15 | class baseformatter(object): |
|
14 | 16 | def __init__(self, ui, topic, opts): |
@@ -133,6 +135,42 b' class jsonformatter(baseformatter):' | |||
|
133 | 135 | baseformatter.end(self) |
|
134 | 136 | self._ui.write("\n]\n") |
|
135 | 137 | |
|
138 | def lookuptemplate(ui, topic, tmpl): | |
|
139 | # looks like a literal template? | |
|
140 | if '{' in tmpl: | |
|
141 | return tmpl, None | |
|
142 | ||
|
143 | # perhaps a stock style? | |
|
144 | if not os.path.split(tmpl)[0]: | |
|
145 | mapname = (templater.templatepath('map-cmdline.' + tmpl) | |
|
146 | or templater.templatepath(tmpl)) | |
|
147 | if mapname and os.path.isfile(mapname): | |
|
148 | return None, mapname | |
|
149 | ||
|
150 | # perhaps it's a reference to [templates] | |
|
151 | t = ui.config('templates', tmpl) | |
|
152 | if t: | |
|
153 | try: | |
|
154 | tmpl = templater.unquotestring(t) | |
|
155 | except SyntaxError: | |
|
156 | tmpl = t | |
|
157 | return tmpl, None | |
|
158 | ||
|
159 | if tmpl == 'list': | |
|
160 | ui.write(_("available styles: %s\n") % templater.stylelist()) | |
|
161 | raise util.Abort(_("specify a template")) | |
|
162 | ||
|
163 | # perhaps it's a path to a map or a template | |
|
164 | if ('/' in tmpl or '\\' in tmpl) and os.path.isfile(tmpl): | |
|
165 | # is it a mapfile for a style? | |
|
166 | if os.path.basename(tmpl).startswith("map-"): | |
|
167 | return None, os.path.realpath(tmpl) | |
|
168 | tmpl = open(tmpl).read() | |
|
169 | return tmpl, None | |
|
170 | ||
|
171 | # constant string? | |
|
172 | return tmpl, None | |
|
173 | ||
|
136 | 174 | def formatter(ui, topic, opts): |
|
137 | 175 | template = opts.get("template", "") |
|
138 | 176 | if template == "json": |
General Comments 0
You need to be logged in to leave comments.
Login now