diff options
Diffstat (limited to 'CabalHelper/Log.hs')
-rw-r--r-- | CabalHelper/Log.hs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/CabalHelper/Log.hs b/CabalHelper/Log.hs index 9e04df0..bbc84a6 100644 --- a/CabalHelper/Log.hs +++ b/CabalHelper/Log.hs @@ -2,6 +2,7 @@ module CabalHelper.Log where import Control.Monad import Control.Monad.IO.Class +import Control.Exception as E import Data.String import System.IO import Prelude @@ -12,3 +13,9 @@ vLog :: MonadIO m => Options -> String -> m () vLog Options { verbose = True } msg = liftIO $ hPutStrLn stderr msg vLog _ _ = return () + +logSomeError :: Options -> String -> IO (Maybe a) -> IO (Maybe a) +logSomeError opts label a = do + a `E.catch` \se@(SomeException _) -> do + vLog opts $ label ++ ": " ++ show se + return Nothing |