diff options
-rw-r--r-- | cwality-maps/Main.hs | 16 | ||||
-rw-r--r-- | package.yaml | 1 | ||||
-rw-r--r-- | 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 |