hook: add a 'hashook' function to test for hook existence
authorBoris Feld <boris.feld@octobus.net>
Sun, 08 Oct 2017 13:08:31 +0200
changeset 34687 e79b6300d97c
parent 34686 0d1b8be8d8a8
child 34688 a88166a4dce3
hook: add a 'hashook' function to test for hook existence Preparing the data for some hooks can be expensive. Add a function to check if a hook exists so we can skip useless preparation if no hook is configured.
mercurial/hook.py
--- a/mercurial/hook.py	Fri Oct 13 22:42:17 2017 +0200
+++ b/mercurial/hook.py	Sun Oct 08 13:08:31 2017 +0200
@@ -189,6 +189,15 @@
     global _redirect
     _redirect = state
 
+def hashook(ui, htype):
+    """return True if a hook is configured for 'htype'"""
+    if not ui.callhooks:
+        return False
+    for hname, cmd in _allhooks(ui):
+        if hname.split('.')[0] == htype and cmd:
+            return True
+    return False
+
 def hook(ui, repo, htype, throw=False, **args):
     if not ui.callhooks:
         return False