summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CmdLine.hs4
-rw-r--r--CmdLine/Action.hs9
-rw-r--r--debian/changelog3
3 files changed, 10 insertions, 6 deletions
diff --git a/CmdLine.hs b/CmdLine.hs
index 41968a091..1d93855ce 100644
--- a/CmdLine.hs
+++ b/CmdLine.hs
@@ -53,8 +53,8 @@ dispatch fuzzyok allargs allcmds commonoptions fields header getgitrepo = do
whenM (annexDebug <$> Annex.getGitConfig) $
liftIO enableDebugOutput
startup
- performCommandAction cmd params
- shutdown $ cmdnocommit cmd
+ performCommandAction cmd params $
+ shutdown $ cmdnocommit cmd
go _flags params (Left e) = do
when fuzzy $
autocorrect =<< Git.Config.global
diff --git a/CmdLine/Action.hs b/CmdLine/Action.hs
index db4f768ac..65cdbec14 100644
--- a/CmdLine/Action.hs
+++ b/CmdLine/Action.hs
@@ -17,13 +17,14 @@ import qualified Annex.Queue
type CommandActionRunner = CommandStart -> CommandCleanup
{- Runs a command, starting with the check stage, and then
- - the seek stage. Finishes by printing the number of commandActions that
- - failed. -}
-performCommandAction :: Command -> CmdParams -> Annex ()
-performCommandAction Command { cmdseek = seek, cmdcheck = c, cmdname = name } params = do
+ - the seek stage. Finishes by running the continutation, and
+ - then showing a count of any failures. -}
+performCommandAction :: Command -> CmdParams -> Annex () -> Annex ()
+performCommandAction Command { cmdseek = seek, cmdcheck = c, cmdname = name } params cont = do
mapM_ runCheck c
Annex.changeState $ \s -> s { Annex.errcounter = 0 }
seek params
+ cont
showerrcount =<< Annex.getState Annex.errcounter
where
showerrcount 0 = noop
diff --git a/debian/changelog b/debian/changelog
index cdc53fd95..cead4170f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,9 @@ git-annex (5.20141220) UNRELEASED; urgency=medium
* Work around statfs() overflow on some XFS systems.
* sync: Now supports remote groups, the same way git remote update does.
* setpresentkey: A new plumbing-level command.
+ * Run shutdown cleanup actions even if there were failures processing
+ the command. Amoung other fixes, this means that addurl will stage
+ added files even if adding one of the urls fails.
-- Joey Hess <id@joeyh.name> Mon, 22 Dec 2014 15:16:38 -0400