]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/commitdiff
Provide statically linked binary for xdgnj (#92)
authorb3nj5m1n <47924309+b3nj5m1n@users.noreply.github.com>
Thu, 9 Jun 2022 13:38:31 +0000 (15:38 +0200)
committerGitHub <noreply@github.com>
Thu, 9 Jun 2022 13:38:31 +0000 (15:38 +0200)
README.md
build/.gitignore [new file with mode: 0644]
build/Dockerfile [new file with mode: 0644]
build/build.sh [new file with mode: 0755]

index 54f19adee13d251064586c2c1703d2dda1005d31..1365abd198c4da08c9a83086a0f56c3276e1a577 100644 (file)
--- 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 (file)
index 0000000..49bd991
--- /dev/null
@@ -0,0 +1 @@
+xdgnj
diff --git a/build/Dockerfile b/build/Dockerfile
new file mode 100644 (file)
index 0000000..f93b737
--- /dev/null
@@ -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 (executable)
index 0000000..a5148c3
--- /dev/null
@@ -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