Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/hgweb/webcommands.py @ 38095:17f7b44367bb
hgweb: wrap {fentries} and {dentries} of manifest with mappinggenerator
They were functions returning a generator of mappings.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 04 Apr 2018 20:14:19 +0900 |
parents | d3b4c4769b5c |
children | 3c995af3066e |
comparison
equal
deleted
inserted
replaced
38094:d3b4c4769b5c | 38095:17f7b44367bb |
---|---|
554 h[None] = None # denotes files present | 554 h[None] = None # denotes files present |
555 | 555 |
556 if mf and not files and not dirs: | 556 if mf and not files and not dirs: |
557 raise ErrorResponse(HTTP_NOT_FOUND, 'path not found: ' + path) | 557 raise ErrorResponse(HTTP_NOT_FOUND, 'path not found: ' + path) |
558 | 558 |
559 def filelist(**map): | 559 def filelist(context): |
560 for f in sorted(files): | 560 for f in sorted(files): |
561 full = files[f] | 561 full = files[f] |
562 | 562 |
563 fctx = ctx.filectx(full) | 563 fctx = ctx.filectx(full) |
564 yield {"file": full, | 564 yield {"file": full, |
566 "basename": f, | 566 "basename": f, |
567 "date": fctx.date(), | 567 "date": fctx.date(), |
568 "size": fctx.size(), | 568 "size": fctx.size(), |
569 "permissions": mf.flags(full)} | 569 "permissions": mf.flags(full)} |
570 | 570 |
571 def dirlist(**map): | 571 def dirlist(context): |
572 for d in sorted(dirs): | 572 for d in sorted(dirs): |
573 | 573 |
574 emptydirs = [] | 574 emptydirs = [] |
575 h = dirs[d] | 575 h = dirs[d] |
576 while isinstance(h, dict) and len(h) == 1: | 576 while isinstance(h, dict) and len(h) == 1: |
589 'manifest', | 589 'manifest', |
590 symrev=symrev, | 590 symrev=symrev, |
591 path=abspath, | 591 path=abspath, |
592 up=webutil.up(abspath), | 592 up=webutil.up(abspath), |
593 upparity=next(parity), | 593 upparity=next(parity), |
594 fentries=filelist, | 594 fentries=templateutil.mappinggenerator(filelist), |
595 dentries=dirlist, | 595 dentries=templateutil.mappinggenerator(dirlist), |
596 archives=web.archivelist(hex(node)), | 596 archives=web.archivelist(hex(node)), |
597 **pycompat.strkwargs(webutil.commonentry(web.repo, ctx))) | 597 **pycompat.strkwargs(webutil.commonentry(web.repo, ctx))) |
598 | 598 |
599 @webcommand('tags') | 599 @webcommand('tags') |
600 def tags(web): | 600 def tags(web): |