summaryrefslogtreecommitdiff
path: root/Readme.md
diff options
context:
space:
mode:
authorstuebinm2021-12-19 13:22:20 +0100
committerstuebinm2021-12-19 13:25:12 +0100
commitfc9f714d03a9d018ab9f2474affcf995eb60a4e2 (patch)
treef0f978164f61a65b9a65ff8bee872d88cfc7c9ab /Readme.md
parentaa897bb7e2ae257c2680521e6b1c1cad1237df53 (diff)
add install instructions, remove nix/guix
Diffstat (limited to 'Readme.md')
-rw-r--r--Readme.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/Readme.md b/Readme.md
index 837af7f..ab10ea1 100644
--- a/Readme.md
+++ b/Readme.md
@@ -10,6 +10,66 @@ 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://`).
+## Installing
+
+### From the CI pipeline
+
+Gitlab [automatically builds a version](https://git.cccv.de/hub/walint/-/jobs)
+of `walint` each time something is pushed to this repository. The resulting
+binary should work fine on most linux systems, especially if they're vaguely
+debian-like.
+
+In case you get an incomprehensible or confusing error when executing it, try
+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/).
+
+Then just run
+
+```
+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).
+
+To install into your `$PATH`, use
+
+```
+stack install
+```
+
+Alternatively, run `walint` via stack:
+
+```
+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.
+
+### 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.
+
## Usage
``` sh
walint --config-file config.json --repository path \