Mercurial > hg-stable
changeset 7819:14b703252f14
dispatch: extract command execution block into method
This pulls the pre-command hook/command/post-command hook workflow out of
the method it is in and puts it into its own method so that it potentially
could be exposed for extensions to wrap.
author | Bill Barry <after.fallout@gmail.com> |
---|---|
date | Thu, 12 Feb 2009 09:36:15 -0700 |
parents | b6b9065c20b3 |
children | 346fafc144fc |
files | mercurial/dispatch.py |
diffstat | 1 files changed, 12 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dispatch.py Thu Feb 05 23:47:31 2009 +0100 +++ b/mercurial/dispatch.py Thu Feb 12 09:36:15 2009 -0700 @@ -239,6 +239,17 @@ pos += 1 return values +def runcommand(lui, repo, cmd, fullargs, ui, options, d): + # run pre-hook, and abort if it fails + ret = hook.hook(lui, repo, "pre-%s" % cmd, False, args=" ".join(fullargs)) + if ret: + return ret + ret = _runcommand(ui, options, cmd, d) + # run post-hook, passing command result + hook.hook(lui, repo, "post-%s" % cmd, False, args=" ".join(fullargs), + result = ret) + return ret + _loaded = {} def _dispatch(ui, args): # read --config before doing anything else @@ -358,16 +369,7 @@ ui.warn("warning: --repository ignored\n") d = lambda: util.checksignature(func)(ui, *args, **cmdoptions) - - # run pre-hook, and abort if it fails - ret = hook.hook(lui, repo, "pre-%s" % cmd, False, args=" ".join(fullargs)) - if ret: - return ret - ret = _runcommand(ui, options, cmd, d) - # run post-hook, passing command result - hook.hook(lui, repo, "post-%s" % cmd, False, args=" ".join(fullargs), - result = ret) - return ret + return runcommand(lui, repo, cmd, fullargs, ui, options, d) def _runcommand(ui, options, cmd, cmdfunc): def checkargs():