summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2014-12-30 12:49:34 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2014-12-30 12:49:34 -0400
commit6c8393e16f5f652e53e333281ac382bddccb430c (patch)
tree47c0d6f6914615f14d7141aa14c135081b0520d2
parent42f7b9fdd11a6b61f35e00e958342fab0949bed7 (diff)
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.
-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