changeset 34687:e79b6300d97c

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.
author Boris Feld <boris.feld@octobus.net>
date Sun, 08 Oct 2017 13:08:31 +0200
parents 0d1b8be8d8a8
children a88166a4dce3
files mercurial/hook.py
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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