summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstuebinm2022-03-03 18:26:24 +0100
committerstuebinm2022-03-03 18:26:24 +0100
commite0b01ceca72765246355662982ff35f19ad7dfbb (patch)
treeda8c3fd775b8597e16dfa169a208c746edc650d3
parent1a11fb5e4ad891d4f3230f386e78de3f6499fd30 (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