From a911948e63d6677a1da7c3000ad5719119d0830a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 28 Dec 2017 17:29:38 -0400 Subject: Fix bug introduced in version 6.20171018 that caused some commands to print out "ok" twice after processing a file. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit was sponsored by Boyd Stephen Smith Jr. on Patreon --- CHANGELOG | 2 ++ CmdLine/Action.hs | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index d3524d766..510336c65 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,8 @@ git-annex (6.20171215) UNRELEASED; urgency=medium * Removed the testsuite build flag; test suite is always included. * Added inprogress command for accessing files as they are being downloaded. + * Fix bug introduced in version 6.20171018 that caused some commands + to print out "ok" twice after processing a file. -- Joey Hess Wed, 20 Dec 2017 12:11:46 -0400 diff --git a/CmdLine/Action.hs b/CmdLine/Action.hs index 2e0bc2ba2..036f47dd3 100644 --- a/CmdLine/Action.hs +++ b/CmdLine/Action.hs @@ -149,15 +149,20 @@ callCommandAction = fromMaybe True <$$> callCommandAction' {- Like callCommandAction, but returns Nothing when the command did not - perform any action. -} callCommandAction' :: CommandStart -> Annex (Maybe Bool) -callCommandAction' = start +callCommandAction' a = callCommandActionQuiet a >>= \case + Nothing -> return Nothing + Just r -> implicitMessage (showEndResult r) >> return (Just r) + +callCommandActionQuiet :: CommandStart -> Annex (Maybe Bool) +callCommandActionQuiet = start where start = stage $ maybe skip perform perform = stage $ maybe failure cleanup cleanup = stage $ status stage = (=<<) skip = return Nothing - failure = implicitMessage showEndFail >> return (Just False) - status r = implicitMessage (showEndResult r) >> return (Just r) + failure = return (Just False) + status = return . Just {- Do concurrent output when that has been requested. -} allowConcurrentOutput :: Annex a -> Annex a @@ -188,7 +193,7 @@ onlyActionOn k a = onlyActionOn' k run where -- Run whole action, not just start stage, so other threads -- block until it's done. - run = callCommandAction' a >>= \case + run = callCommandActionQuiet a >>= \case Nothing -> return Nothing Just r' -> return $ Just $ return $ Just $ return r' -- cgit v1.2.3