diff mercurial/dispatch.py @ 28821:d3369dc6c1d0

dispatch: split out warning message generation to separate function Allow for patching warning message generation, or for patching out the ui.log / ui.warn behaviour (but still generate the warning message).
author Martijn Pieters <mjpieters@fb.com>
date Tue, 05 Apr 2016 20:01:23 +0100
parents 09750b1231c2
children 3640c1702c43
line wrap: on
line diff
--- a/mercurial/dispatch.py	Wed Apr 06 20:08:18 2016 +0000
+++ b/mercurial/dispatch.py	Tue Apr 05 20:01:23 2016 +0100
@@ -1015,12 +1015,9 @@
     else:
         return checkargs()
 
-def handlecommandexception(ui):
-    """Produce a warning message for broken commands
+def _exceptionwarning(ui):
+    """Produce a warning message for the current active exception"""
 
-    Called when handling an exception; the exception is reraised if
-    this function returns False, ignored otherwise.
-    """
     # For compatibility checking, we discard the portion of the hg
     # version after the + on the assumption that if a "normal
     # user" is running a build with a + in it the packager
@@ -1072,6 +1069,15 @@
                  util.version()) +
                 (_("** Extensions loaded: %s\n") %
                  ", ".join([x[0] for x in extensions.extensions()])))
+    return warning
+
+def handlecommandexception(ui):
+    """Produce a warning message for broken commands
+
+    Called when handling an exception; the exception is reraised if
+    this function returns False, ignored otherwise.
+    """
+    warning = _exceptionwarning(ui)
     ui.log("commandexception", "%s\n%s\n", warning, traceback.format_exc())
     ui.warn(warning)
     return False  # re-raise the exception