summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstuebinm2022-03-03 18:26:24 +0100
committerstuebinm2022-03-19 19:57:18 +0100
commit9f724d13d6a419cc0ab14c5fab438d27399096a0 (patch)
treea18b47d03f2058218e68e883b9b1835d040fc18e
parent508da68050646a7cf83606176512337a32621676 (diff)
update readme
this isn't comprehensive or anything, but at least acknowledges that this repo now contains more than just the linter
Diffstat (limited to '')
-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