propellor spin

This commit is contained in:
Joey Hess 2014-04-11 01:52:12 -04:00
parent a342e216bb
commit a57022deb8
Failed to extract signature
1 changed files with 4 additions and 2 deletions

View File

@ -4,13 +4,15 @@ module Propellor.Exception where
import qualified "MonadCatchIO-transformers" Control.Monad.CatchIO as M
import Control.Exception
import Control.Applicative
import Propellor.Types
import Propellor.Message
-- | Catches IO exceptions and returns FailedChange.
catchPropellor :: Propellor Result -> Propellor Result
catchPropellor a = either (\_ -> FailedChange) id <$> tryPropellor a
catchPropellor a = either err return =<< tryPropellor a
where
err e = warningMessage (show e) >> return FailedChange
tryPropellor :: Propellor a -> Propellor (Either IOException a)
tryPropellor = M.try