summaryrefslogtreecommitdiff
path: root/Propellor
diff options
context:
space:
mode:
authorJoey Hess2014-04-11 01:52:12 -0400
committerJoey Hess2014-04-11 01:52:12 -0400
commita57022deb88ca0216b01791f4325d4aace6de8f3 (patch)
treedd2851dde2ee3d599abfdaa94af1579b6c23c09c /Propellor
parenta342e216bb56bb2c63c5addf97c74a7b047ac07c (diff)
propellor spin
Diffstat (limited to 'Propellor')
-rw-r--r--Propellor/Exception.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/Propellor/Exception.hs b/Propellor/Exception.hs
index bd9212a8..f6fd15f1 100644
--- a/Propellor/Exception.hs
+++ b/Propellor/Exception.hs
@@ -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