on master help sign in
Update for new hpack
commit644587f501a5baeea2363d5fa11d7f8d2bed3794 authorAli Abrar <aliabrar@gmail.com> dateTue 27 Aug 2019, 12:15 (7 years ago) parentfc85aeb
3 files changed+13−7
lib/cliapp/src/Obelisk/CliApp/Types.hs+8−3 lib/command/src/Obelisk/App.hs+3−2 lib/command/src/Obelisk/Command/Run.hs+2−2
lib/cliapp/src/Obelisk/CliApp/Types.hs+8−3
@@ -6,12 +6,14 @@
66{-# LANGUAGE GeneralizedNewtypeDeriving #-}
77{-# LANGUAGE MultiParamTypeClasses #-}
88{-# LANGUAGE OverloadedStrings #-}
9+{-# LANGUAGE StandaloneDeriving #-}
910{-# LANGUAGE UndecidableInstances #-}
1011module Obelisk.CliApp.Types where
1112
1213import Control.Concurrent.MVar (MVar)
1314import Control.Monad.Catch (MonadCatch, MonadMask, MonadThrow)
14−import Control.Monad.Log (LoggingT, MonadLog, Severity (..), WithSeverity (..), logMessage)
15+import Control.Monad.Fail (MonadFail)
16+import Control.Monad.Log (LoggingT(..), MonadLog, Severity (..), WithSeverity (..), logMessage)
1517import Control.Monad.Reader (MonadIO, ReaderT (..), MonadReader (..), ask, mapReaderT)
1618import Control.Monad.Writer (WriterT)
1719import Control.Monad.State (StateT)
@@ -45,9 +47,12 @@ type CliThrow e m = MonadError e m
4547putLog :: CliLog m => Severity -> Text -> m ()
4648putLog sev = logMessage . Output_Log . WithSeverity sev
4749
50+-- TODO (Re)move this instance
51+deriving instance MonadFail m => MonadFail (LoggingT Output m)
52+
4853newtype DieT e m a = DieT { unDieT :: ReaderT (e -> (Text, Int)) (LoggingT Output m) a }
4954 deriving
50− ( Functor, Applicative, Monad, MonadIO
55+ ( Functor, Applicative, Monad, MonadIO, MonadFail
5156 , MonadThrow, MonadCatch, MonadMask
5257 , MonadLog Output
5358 )
@@ -114,7 +119,7 @@ newtype CliT e m a = CliT
114119 { unCliT :: ReaderT (CliConfig e) (DieT e m) a
115120 }
116121 deriving
117− ( Functor, Applicative, Monad, MonadIO
122+ ( Functor, Applicative, Monad, MonadIO, MonadFail
118123 , MonadThrow, MonadCatch, MonadMask
119124 , MonadLog Output -- CliLog
120125 , MonadError e -- CliThrow
lib/command/src/Obelisk/App.hs+3−2
@@ -62,10 +62,11 @@ newtype ObeliskT m a = ObeliskT
6262 { unObeliskT :: ReaderT Obelisk (CliT ObeliskError m) a
6363 }
6464 deriving
65− ( Functor, Applicative, Monad, MonadIO, MonadThrow, MonadCatch, MonadMask
65+ ( Functor, Applicative, Monad, MonadIO, MonadThrow, MonadCatch, MonadMask, MonadFail
6666 , MonadLog Output -- CliLog
6767 , MonadError ObeliskError -- CliThrow ObeliskError
68− , HasCliConfig ObeliskError)
68+ , HasCliConfig ObeliskError
69+ )
6970
7071instance MonadTrans ObeliskT where
7172 lift = ObeliskT . lift . lift
lib/command/src/Obelisk/Command/Run.hs+2−2
@@ -118,12 +118,12 @@ parseCabalPackage dir = do
118118 then Just <$> liftIO (readUTF8File cabalFp)
119119 else if hasHpack
120120 then do
121− let decodeOptions = DecodeOptions hpackFp Nothing decodeYaml
121+ let decodeOptions = DecodeOptions (ProgramName "ob") hpackFp Nothing decodeYaml
122122 liftIO (readPackageConfig decodeOptions) >>= \case
123123 Left err -> do
124124 putLog Error $ T.pack $ "Failed to parse " <> hpackFp <> ": " <> err
125125 return Nothing
126− Right (DecodeResult hpackPackage _ _) -> do
126+ Right (DecodeResult hpackPackage _ _ _) -> do
127127 return $ Just $ renderPackage [] hpackPackage
128128 else return Nothing
129129