propellor spin
This commit is contained in:
parent
a342e216bb
commit
a57022deb8
|
@ -4,13 +4,15 @@ module Propellor.Exception where
|
||||||
|
|
||||||
import qualified "MonadCatchIO-transformers" Control.Monad.CatchIO as M
|
import qualified "MonadCatchIO-transformers" Control.Monad.CatchIO as M
|
||||||
import Control.Exception
|
import Control.Exception
|
||||||
import Control.Applicative
|
|
||||||
|
|
||||||
import Propellor.Types
|
import Propellor.Types
|
||||||
|
import Propellor.Message
|
||||||
|
|
||||||
-- | Catches IO exceptions and returns FailedChange.
|
-- | Catches IO exceptions and returns FailedChange.
|
||||||
catchPropellor :: Propellor Result -> Propellor Result
|
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 :: Propellor a -> Propellor (Either IOException a)
|
||||||
tryPropellor = M.try
|
tryPropellor = M.try
|
||||||
|
|
Loading…
Reference in New Issue