17 lines
479 B
Haskell
17 lines
479 B
Haskell
|
{-# LANGUAGE PackageImports #-}
|
||
|
|
||
|
module Propellor.Exception where
|
||
|
|
||
|
import qualified "MonadCatchIO-transformers" Control.Monad.CatchIO as M
|
||
|
import Control.Exception
|
||
|
import Control.Applicative
|
||
|
|
||
|
import Propellor.Types
|
||
|
|
||
|
-- | Catches IO exceptions and returns FailedChange.
|
||
|
catchPropellor :: Propellor Result -> Propellor Result
|
||
|
catchPropellor a = either (\_ -> FailedChange) id <$> tryPropellor a
|
||
|
|
||
|
tryPropellor :: Propellor a -> Propellor (Either IOException a)
|
||
|
tryPropellor = M.try
|