extensions: move uisetup and extsetup to standalone functions
This is to make them wrap-able. chgserver wants to know if an extension
accesses config or environment variables during uisetup and extsetup and
include them in confighash accordingly.
--- a/mercurial/extensions.py Fri Jul 01 16:02:56 2016 -0500
+++ b/mercurial/extensions.py Thu Jun 30 10:31:50 2016 +0100
@@ -127,6 +127,21 @@
fn(loaded=True)
return mod
+def _runuisetup(name, ui):
+ uisetup = getattr(_extensions[name], 'uisetup', None)
+ if uisetup:
+ uisetup(ui)
+
+def _runextsetup(name, ui):
+ extsetup = getattr(_extensions[name], 'extsetup', None)
+ if extsetup:
+ try:
+ extsetup(ui)
+ except TypeError:
+ if extsetup.func_code.co_argcount != 0:
+ raise
+ extsetup() # old extsetup with no ui argument
+
def loadall(ui):
result = ui.configitems("extensions")
newindex = len(_order)
@@ -148,19 +163,10 @@
ui.traceback()
for name in _order[newindex:]:
- uisetup = getattr(_extensions[name], 'uisetup', None)
- if uisetup:
- uisetup(ui)
+ _runuisetup(name, ui)
for name in _order[newindex:]:
- extsetup = getattr(_extensions[name], 'extsetup', None)
- if extsetup:
- try:
- extsetup(ui)
- except TypeError:
- if extsetup.func_code.co_argcount != 0:
- raise
- extsetup() # old extsetup with no ui argument
+ _runextsetup(name, ui)
# Call aftercallbacks that were never met.
for shortname in _aftercallbacks: