From e5adcba7ef3fd9508588979ddcc071a494010f2e Mon Sep 17 00:00:00 2001 From: stuebinm Date: Thu, 3 Mar 2022 17:46:14 +0100 Subject: cwality-maps: better logging --- cwality-maps/Main.hs | 16 +++++++++++----- package.yaml | 1 + walint.cabal | 1 + 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/cwality-maps/Main.hs b/cwality-maps/Main.hs index f242b94..39723f4 100644 --- a/cwality-maps/Main.hs +++ b/cwality-maps/Main.hs @@ -44,6 +44,9 @@ import Servant.Server.StaticFiles (serveDirectoryWebApp) import Substitute (Substitutable (substitute), SubstitutionError) +import Control.Monad.Logger + + -- | a map's filename ending in .json -- (a newtype to differentiate between maps and assets in a route) newtype JsonFilename = JsonFilename Text @@ -87,14 +90,15 @@ mkMap :: Config True -> Tiledmap -> MapParams -> ([SubstitutionError], Tiledmap) mkMap _config basemap params = substitute basemap (substs params) - mapHandler :: Config True -> JsonFilename -> MapParams -> Handler Tiledmap mapHandler config (JsonFilename mapname) params = case M.lookup mapname (snd $ view template config) of - Just basemap -> do - let (errors, map) = mkMap config basemap params - print errors - pure map + Just basemap -> runStdoutLoggingT $ + logWarnN (pretty errors) >> pure tiledmap + where (errors, tiledmap) = mkMap config basemap params + pretty errors = T.concat + . intersperse "\n " + $ concatMap (lines . show) errors Nothing -> throwError err404 -- | Complete set of routes: API + HTML sites @@ -106,6 +110,8 @@ server config = mapHandler config app :: Config True -> Application app = serve (Proxy @Routes) . server + + main :: IO () main = do config <- loadConfig "./cwality-config.toml" diff --git a/package.yaml b/package.yaml index 2277d29..3dcda10 100644 --- a/package.yaml +++ b/package.yaml @@ -72,6 +72,7 @@ executables: - wai - wai-extra - warp + - monad-logger - fmt - tomland - microlens-platform diff --git a/walint.cabal b/walint.cabal index 167a394..dd1dfad 100644 --- a/walint.cabal +++ b/walint.cabal @@ -99,6 +99,7 @@ executable cwality-maps , filepath , fmt , microlens-platform + , monad-logger , mustache , parsec , servant -- cgit v1.2.3