From 9f724d13d6a419cc0ab14c5fab438d27399096a0 Mon Sep 17 00:00:00 2001 From: stuebinm Date: Thu, 3 Mar 2022 18:26:24 +0100 Subject: update readme this isn't comprehensive or anything, but at least acknowledges that this repo now contains more than just the linter --- Readme.md | 49 ++++++++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/Readme.md b/Readme.md index ab10ea1..faba39f 100644 --- a/Readme.md +++ b/Readme.md @@ -1,14 +1,23 @@ # walint: lint & adjust workadventure maps -`walint` is intended as a simple linter that will check workadventure maps for -common errors, such as non-existent map entrypoints or missing asset files, and -additionally suggest changes to improve accessability. +### Overview & Components -Optionally, it can also *adjust* maps — e.g. to automatically insert property -values or help enforce an event's map policies — and then write them out again, -copying all needed assets and minifying the map's json. This is used to simulate -a `bbbRoom` property (via `openWebsite`), collect and remove badge tokens before -maps are published, and to resolve special-schema URIs (e.g. `world://`). +`walint` is intended as a linter for workadventure maps that checks for common +errors (such as non-existent map entrypoints or missing asset files) and makes +suggestions to improve accessability. + +It can also *adjust* maps — e.g. to automatically insert property values or help +enforce an event's map policies (among other things, this is used to resolve +special inter-assembly `world://` links). + +`walint-mapserver` is a minimal implementation of a server that periodically +fetches, lints, and adjusts maps from a set of git repositories, writing them +to a path that can then be served by a webserver. It can be used as a (very +simple) replacement for rc3's hub and mapservice at smaller events. + +`cwality-maps` is a small server for type-safe map templating, to be used if +maps need to be generated on-the-fly — for example, to provide custom intermediate +maps displaying CWs before another map can be reached. ## Installing @@ -25,7 +34,7 @@ running `ldd walint` and see if anything is marked as not found, then install it ### Build using stack This uses a lockfile to pin versions of dependencies (as well as `ghc`, the haskell -compiler). You will need [stack](https://docs.haskellstack.org/en/stable/README/). +compiler). You will need [the haskell stack](https://docs.haskellstack.org/en/stable/README/). Then just run @@ -34,8 +43,8 @@ stack build ``` If you lack `ghc` in the correct version and don't know how to install it, you can -pass it `--install-ghc` to take care of that for you (note that on Nix, `stack` may -automatically use a fitting `ghc` derivation if it finds one). +pass it `--install-ghc` to take care of that for you (note that on NixOS, `stack` may +use a fitting `ghc` derivation if it finds one, even without `--install-ghc`). To install into your `$PATH`, use @@ -50,25 +59,11 @@ stack run -- walint [options as normal] ``` However, in this case stack will re-check files every time to ensure your build -is up to date with the sources, which will make it slower to start. +is up to date with the sources, increasing startup time. ### Build using cabal -Note that this does not pin dependencies, and `walint` currently does not even -define semver ranges to ensure it compiles at all! Even so, you can use -[cabal](https://www.haskell.org/cabal/) if for some reason you absolutely must, -as long as your package list is sufficiently recent. - -Run: - -``` -cabal update -cabal build -``` - -Note that `cabal` might decide to pull in an older version of Aeson which is -still vulnerable to hash flooding; in that case `walint` will print a warning -on startup. +You can, but probably should not. Beware of older Aeson versions! ## Usage ``` sh -- cgit v1.2.3