diff options
author | Joey Hess <joey@kitenet.net> | 2010-11-01 03:01:58 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-11-01 03:01:58 -0400 |
commit | 0655ae4b8a4c3b55351a37ddad03bb33a7cc9353 (patch) | |
tree | e18eb6ae9835fbccf76fa4f95087215ae1b6f827 /git-annex.hs | |
parent | 524125e52e8d2a392a2662ac09f8658307513a25 (diff) |
move
Diffstat (limited to 'git-annex.hs')
-rw-r--r-- | git-annex.hs | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/git-annex.hs b/git-annex.hs index e958ac2f9..370c22a1e 100644 --- a/git-annex.hs +++ b/git-annex.hs @@ -5,12 +5,9 @@ - Licensed under the GNU GPL version 3 or higher. -} -import IO (try) import System.Environment -import Monad import qualified Annex -import Types import Core import Commands import qualified GitRepo as Git @@ -23,26 +20,3 @@ main = do state <- Annex.new gitrepo allBackends (configure, actions) <- parseCmd args state tryRun state $ [startup] ++ configure ++ actions ++ [shutdown] - -{- Runs a list of Annex actions. Catches IO errors and continues - - (but explicitly thrown errors terminate the whole command). - - Propigates an overall error status at the end. - - - - This runs in the IO monad, not in the Annex monad. It seems that - - exceptions can only be caught in the IO monad, not in a stacked monad; - - or more likely I missed an easy way to do it. So, I have to laboriously - - thread AnnexState through this function. - -} -tryRun :: AnnexState -> [Annex Bool] -> IO () -tryRun state actions = tryRun' state 0 actions -tryRun' :: AnnexState -> Integer -> [Annex Bool] -> IO () -tryRun' state errnum (a:as) = do - result <- try $ Annex.run state a - case (result) of - Left err -> do - Annex.eval state $ showErr err - tryRun' state (errnum + 1) as - Right (True,state') -> tryRun' state' errnum as - Right (False,state') -> tryRun' state' (errnum + 1) as -tryRun' _ errnum [] = - when (errnum > 0) $ error $ (show errnum) ++ " failed" |