Mercurial > hg
diff mercurial/extensions.py @ 29461:7d88fde2309f
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.
author | Jun Wu <quark@fb.com> |
---|---|
date | Thu, 30 Jun 2016 10:31:50 +0100 |
parents | 5a3197cbe415 |
children | ce6317dcb944 |
line wrap: on
line diff
--- 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: