hgweb: add index template to json/map
authorAnton Shestakov <av6@dwimlabs.net>
Sat, 27 Feb 2016 19:53:18 +0800
changeset 28268 3643b66d7f71
parent 28267 5408e532e50a
child 28269 6e3fdd98b277
hgweb: add index template to json/map This template allows showing the list of all repos in an hgweb instance (in hgwebdir mode) as json. The test has "lastchange" globbed because hgweb uses here file modification time and not the last commit time.
mercurial/templates/json/map
tests/test-hgwebdir.t
--- a/mercurial/templates/json/map	Fri Feb 26 19:13:10 2016 +0000
+++ b/mercurial/templates/json/map	Sat Feb 27 19:53:18 2016 +0800
@@ -172,3 +172,12 @@
   }'
 filenodelink = ''
 filenolink = ''
+index = '\{
+  "entries": [{join(entries%indexentry, ", ")}]
+  }'
+indexentry = '\{
+  "name": {name|utf8|json},
+  "description": {description|utf8|json},
+  "contact": {contact|utf8|json},
+  "lastchange": {lastchange|json}
+  }'
--- a/tests/test-hgwebdir.t	Fri Feb 26 19:13:10 2016 +0000
+++ b/tests/test-hgwebdir.t	Sat Feb 27 19:53:18 2016 +0800
@@ -100,6 +100,23 @@
   /a/
   /b/
   
+  $ get-with-headers.py localhost:$HGPORT '?style=json'
+  200 Script output follows
+  
+  {
+  "entries": [{
+  "name": "a",
+  "description": "unknown",
+  "contact": "Foo Bar \u003cfoo.bar@example.com\u003e",
+  "lastchange": [*, *] (glob)
+  }, {
+  "name": "b",
+  "description": "unknown",
+  "contact": "Foo Bar \u003cfoo.bar@example.com\u003e",
+  "lastchange": [*, *] (glob)
+  }]
+  } (no-eol)
+
   $ get-with-headers.py localhost:$HGPORT 'a/file/tip/a?style=raw'
   200 Script output follows