summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Readme.md49
1 files 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