summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2023-10-01 17:19:06 +0200
committerEugen Wissner <belka@caraus.de>2023-10-01 17:19:06 +0200
commitf4b7883cf2a6739ca9cd7b8fe94cfe11df3918bc (patch)
treee68eaf5970c1ff9454f06973d257022684926912 /lib
parent69b24c6cfa524d5367df1b9b5a7b5c8bcd8da259 (diff)
downloadslackbuilder-f4b7883cf2a6739ca9cd7b8fe94cfe11df3918bc.tar.gz
Migrate composer updater
Diffstat (limited to 'lib')
-rw-r--r--lib/SlackBuilder/Trans.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/SlackBuilder/Trans.hs b/lib/SlackBuilder/Trans.hs
index d678a19..5147a9a 100644
--- a/lib/SlackBuilder/Trans.hs
+++ b/lib/SlackBuilder/Trans.hs
@@ -5,6 +5,7 @@ module SlackBuilder.Trans
import Control.Monad.Trans.Reader (ReaderT(..))
import SlackBuilder.Config
import Control.Monad.IO.Class (MonadIO(..))
+import Control.Monad.Catch (MonadCatch(..), MonadThrow(..))
newtype SlackBuilderT a = SlackBuilderT
{ runSlackBuilderT :: ReaderT Settings IO a
@@ -27,3 +28,12 @@ instance Monad SlackBuilderT
instance MonadIO SlackBuilderT
where
liftIO = SlackBuilderT . liftIO
+
+instance MonadThrow SlackBuilderT
+ where
+ throwM = SlackBuilderT . throwM
+
+instance MonadCatch SlackBuilderT
+ where
+ catch (SlackBuilderT action) handler =
+ SlackBuilderT $ catch action $ runSlackBuilderT . handler