diff --git a/README.md b/README.md index 54f19ade..1365abd1 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,6 @@ This will run every test in the default configuration. ### Optional - [glow](https://repology.org/project/glow/packages) for rendering markdown in the terminal ([bat](https://repology.org/project/bat-cat/packages), [pygmentize](https://repology.org/project/pygments/versions) or [highlight](https://repology.org/project/highlight/packages) can be used as fallback, but glow's output is clearer and therefore glow is recommended) -- [cabal](https://repology.org/project/cabal/packages) for compiling the helper program for creating configurations ## Configuration @@ -43,13 +42,19 @@ Files in this directory can have any name, but using the name of the program is ### Automatically Generating Configuration -You need _haskell_ and _cabal_ installed. (To be clear, this is just for a tool that will help you automatically generate the config files, you still only need your shell to run the tests) +You can download the _xdgnj_ executable from the releases page. Alternatively you can build it from scratch using _cabal_, _stack_, or the provided docker image in _build/_. (To be clear, this is just a tool that will help you automatically generate the config files, you still only need your shell to run the tests) -Run the following command: +Available commands: ```sh -cabal run xdgnj add +xdgnj add # Adds a new configuration +xdgnj prev programs/FILE.json # Preview the configuration for a program +xdgnj run # Mostly the same as running the shell script ``` +#### Building from scratch + +You can use `cabal build`, `stack build`, or the provided dockerfile in _build/_. + ### Manually We're going to use _git_ as an example. diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 00000000..49bd991d --- /dev/null +++ b/build/.gitignore @@ -0,0 +1 @@ +xdgnj diff --git a/build/Dockerfile b/build/Dockerfile new file mode 100644 index 00000000..f93b7376 --- /dev/null +++ b/build/Dockerfile @@ -0,0 +1,10 @@ +FROM fpco/stack-build:lts-19.10 + +WORKDIR /usr/lib/gcc/x86_64-linux-gnu/7.5.0 +RUN ls +RUN cp crtbeginT.o crtbeginT.o.orig +RUN cp crtbeginS.o crtbeginT.o + +RUN git clone "https://github.com/b3nj5m1n/xdg-ninja" /tmp/xdg-ninja +WORKDIR /tmp/xdg-ninja +RUN stack install --ghc-options '-optl-static -fPIC' diff --git a/build/build.sh b/build/build.sh new file mode 100755 index 00000000..a5148c3a --- /dev/null +++ b/build/build.sh @@ -0,0 +1,4 @@ +#!/bin/env sh +docker build -t xdgnj . || exit 1 +docker run --rm --volume "$(pwd):/data" xdgnj cp "/root/.local/bin/xdgnj" "/data/xdgnj" || exit 1 +sudo chown "$USER" xdgnj