comparison mercurial/logcmdutil.py @ 37773:0f084741cd66

logcmdutil: pass formatter to jsonchangeset as argument And rename the class. Now we can reuse it for 'log -Tcbor' (and '-Tpickle' if we want.)
author Yuya Nishihara <yuya@tcha.org>
date Fri, 13 Apr 2018 23:07:12 +0900
parents 814151cd8c4a
children e0f30c91dfd8
comparison
equal deleted inserted replaced
37772:814151cd8c4a 37773:0f084741cd66
308 if diff: 308 if diff:
309 self._differ.showdiff(self.ui, ctx, diffopts, stat=False) 309 self._differ.showdiff(self.ui, ctx, diffopts, stat=False)
310 if stat or diff: 310 if stat or diff:
311 self.ui.write("\n") 311 self.ui.write("\n")
312 312
313 class jsonchangeset(changesetprinter): 313 class changesetformatter(changesetprinter):
314 '''format changeset information.''' 314 """Format changeset information by generic formatter"""
315 315
316 def __init__(self, ui, repo, differ=None, diffopts=None, buffered=False): 316 def __init__(self, ui, repo, fm, differ=None, diffopts=None,
317 buffered=False):
317 changesetprinter.__init__(self, ui, repo, differ, diffopts, buffered) 318 changesetprinter.__init__(self, ui, repo, differ, diffopts, buffered)
318 self._fm = formatter.jsonformatter(ui, ui, 'log', {}) 319 self._fm = fm
319 320
320 def close(self): 321 def close(self):
321 self._fm.end() 322 self._fm.end()
322 323
323 def _show(self, ctx, copies, props): 324 def _show(self, ctx, copies, props):
517 If all of these values are either the unset or the empty string, 518 If all of these values are either the unset or the empty string,
518 regular display via changesetprinter() is done. 519 regular display via changesetprinter() is done.
519 """ 520 """
520 postargs = (differ, opts, buffered) 521 postargs = (differ, opts, buffered)
521 if opts.get('template') == 'json': 522 if opts.get('template') == 'json':
522 return jsonchangeset(ui, repo, *postargs) 523 fm = ui.formatter('log', opts)
524 return changesetformatter(ui, repo, fm, *postargs)
523 525
524 spec = _lookuptemplate(ui, opts.get('template'), opts.get('style')) 526 spec = _lookuptemplate(ui, opts.get('template'), opts.get('style'))
525 527
526 if not spec.ref and not spec.tmpl and not spec.mapfile: 528 if not spec.ref and not spec.tmpl and not spec.mapfile:
527 return changesetprinter(ui, repo, *postargs) 529 return changesetprinter(ui, repo, *postargs)