hg site extension
 
(Arne Babenhauserheide)
2017-10-08: survive 4.x templater API changes tip

survive 4.x templater API changes

diff --git a/staticsite.py b/staticsite.py
--- a/staticsite.py
+++ b/staticsite.py
@@ -26,7 +26,7 @@ import socket
 import datetime
 import codecs
 from mercurial import cmdutil, util, scmutil
-from mercurial import commands, dispatch
+from mercurial import commands, dispatch, formatter
 # from mercurial.i18n import _
 def _(string): # avoid partial localizations
     return string
@@ -740,12 +740,19 @@ def simpletemplater(ui, repo, tmpl):
             t.use_template(tmpl)
         except TypeError as e31: # 3.0?
             try:
-                t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, tmpl=tmpl, mapfile=None, buffered=False)
-            except TypeError as e30:
-                print e32
-                print e31
-                print e30
-                raise
+                # self, ui, repo, tmplspec, matchfn=None, diffopts=None, buffered=False
+                topic=None
+                tmplspec = formatter.lookuptemplate(ui, topic, tmpl)
+                t = cmdutil.changeset_templater(ui, repo, tmplspec, diffopts=None, buffered=False)
+            except TypeError as e4x: # 4.x? FIXME: check this first!
+                try:
+                    t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, tmpl=tmpl, mapfile=None, buffered=False)
+                except TypeError as e30:
+                    print e32
+                    print e31
+                    print e4x
+                    print e30
+                    raise
     return t
 
 def overviewlogstring(ui, repo, revs, template=templates["commitlog"]): 
@@ -1590,6 +1597,9 @@ def staticsite(ui, repo, target=None, **
 
 # adjust to 3.8 API change
 staticsite.norepo = False
+# adjust to 4.x API change
+staticsite.inferrepo = False
+staticsite.optionalrepo = False
         
 cmdtable = {
     # "command-name": (function-call, options-list, help-string)