boots-app 0.1 → 0.1.0.1
raw patch · 3 files changed
+20/−13 lines, 3 filesdep ~bootsdep ~salakdep ~salak-yaml
Dependency ranges changed: boots, salak, salak-yaml
Files
- boots-app.cabal +3/−3
- src/Boots/Factory/Application.hs +5/−7
- src/Boots/Factory/Logger.hs +12/−3
boots-app.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.12 name: boots-app-version: 0.1+version: 0.1.0.1 license: MIT license-file: LICENSE copyright: 2019 Daniel YU@@ -32,7 +32,7 @@ ghc-options: -Wall -fno-warn-orphans -fno-warn-missing-signatures build-depends: base >=4.10 && <5,- boots ==0.1.*,+ boots >=0.1.1 && <0.2, data-default >=0.7.1.1 && <0.8, exceptions >=0.10.2 && <0.11, fast-logger >=2.4.16 && <2.5,@@ -64,7 +64,7 @@ ghc-options: -Wall -fno-warn-orphans -fno-warn-missing-signatures build-depends: base >=4.10 && <5,- boots ==0.1.*,+ boots >=0.1.1 && <0.2, data-default >=0.7.1.1 && <0.8, exceptions >=0.10.2 && <0.11, fast-logger >=2.4.16 && <2.5,
src/Boots/Factory/Application.hs view
@@ -11,7 +11,7 @@ import Boots.Factory.Salak import Control.Concurrent.MVar import Data.Maybe-import Data.String (fromString)+import Data.String import Data.Text (Text) import Data.Version (Version) import Data.Word@@ -37,7 +37,6 @@ { name :: Text -- ^ Service name. , instanceId :: Text -- ^ Instance id. , version :: Version -- ^ Service version.- , tags :: [Text] -- ^ Service tags. , randSeed :: MVar SMGen -- ^ Random seed , configure :: Salak , logF :: LogFunc@@ -48,10 +47,9 @@ configure <- buildSalak confName within configure $ do name <- fromMaybe (fromString confName) <$> require "application.name"- logF <- buildLogger name- tags <- require "application.tags" randSeed <- offer $ liftIO $ initSMGen >>= newMVar instanceId <- offer $ liftIO $ hex64 <$> random64 randSeed+ logF <- buildLogger (name <> "," <> instanceId) return AppEnv{..} random64 :: MVar SMGen -> IO Word64@@ -59,13 +57,13 @@ where go (a,b) = (b,a) -hex64 :: Word64 -> Text+hex64 :: IsString a => Word64 -> a hex64 i = fromString $ let x = showHex i "" in replicate (16 - length x) '0' ++ x -rand64 :: MonadIO m => MVar SMGen -> m Text+rand64 :: (IsString a, MonadIO m) => MVar SMGen -> m a rand64 = liftIO . fmap hex64 . random64 -buildRandom :: (MonadIO m, HasApp env) => Factory m env Text+buildRandom :: (IsString a, MonadIO m, HasApp env) => Factory m env a buildRandom = do AppEnv{..} <- asks (view askApp) offer $ rand64 randSeed
src/Boots/Factory/Logger.hs view
@@ -4,7 +4,16 @@ , LogFunc , addTrace , buildLogger+ -- ** Log Functions , MonadLogger(..)+ , MonadLoggerIO(..)+ , runLoggingT+ , logInfo+ , logDebug+ , logError+ , logWarn+ , logOther+ , LogLevel(..) ) where import Boots.App.Internal@@ -34,15 +43,15 @@ LogFunc{..} <- asks (view askLogger) liftIO $ logfunc a b c (toLogStr d) -instance (MonadIO m, HasLogger cxt) => MonadLogger (AppT cxt m) where+instance (MonadIO m, HasLogger env) => MonadLogger (AppT env m) where monadLoggerLog a b c d = do LogFunc{..} <- asks (view askLogger) liftIO $ logfunc a b c (toLogStr d) -instance (MonadIO m, HasLogger cxt) => MonadLoggerIO (Factory m cxt) where+instance (MonadIO m, HasLogger env) => MonadLoggerIO (Factory m env) where askLoggerIO = logfunc <$> asks (view askLogger) -instance (MonadIO m, HasLogger cxt) => MonadLoggerIO (AppT cxt m) where+instance (MonadIO m, HasLogger env) => MonadLoggerIO (AppT env m) where askLoggerIO = logfunc <$> asks (view askLogger) instance Monad m => FromProp m LogLevel where