diff options
author | Joey Hess <joeyh@joeyh.name> | 2014-12-30 12:49:34 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2014-12-30 12:49:34 -0400 |
commit | 6c8393e16f5f652e53e333281ac382bddccb430c (patch) | |
tree | 47c0d6f6914615f14d7141aa14c135081b0520d2 | |
parent | 42f7b9fdd11a6b61f35e00e958342fab0949bed7 (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.hs | 4 | ||||
-rw-r--r-- | CmdLine/Action.hs | 9 | ||||
-rw-r--r-- | debian/changelog | 3 |
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 |