aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix55
1 files changed, 55 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix
new file mode 100644
index 000000000000..ecedd2b0b417
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/execline/default.nix
@@ -0,0 +1,55 @@
+{ lib, skawarePackages
+# for execlineb-with-builtins
+, coreutils, gnugrep, writeScriptBin, runCommand, runCommandCC
+}:
+
+with skawarePackages;
+
+buildPackage {
+ pname = "execline";
+ version = "2.6.1.0";
+ sha256 = "0mj565xml3hvw27finydms0s9abbbpgbr29vnr8gwi7zjzq7ck52";
+
+ description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
+
+ outputs = [ "bin" "lib" "dev" "doc" "out" ];
+
+ # TODO: nsss support
+ configureFlags = [
+ "--libdir=\${lib}/lib"
+ "--dynlibdir=\${lib}/lib"
+ "--bindir=\${bin}/bin"
+ "--includedir=\${dev}/include"
+ "--with-sysdeps=${skalibs.lib}/lib/skalibs/sysdeps"
+ "--with-include=${skalibs.dev}/include"
+ "--with-lib=${skalibs.lib}/lib"
+ "--with-dynlib=${skalibs.lib}/lib"
+ ];
+
+ postInstall = ''
+ # remove all execline executables from build directory
+ rm $(find -type f -mindepth 1 -maxdepth 1 -executable)
+ rm libexecline.*
+
+ mv doc $doc/share/doc/execline/html
+ mv examples $doc/share/doc/execline/examples
+
+ mv $bin/bin/execlineb $bin/bin/.execlineb-wrapped
+
+ # A wrapper around execlineb, which provides all execline
+ # tools on `execlineb`’s PATH.
+ # It is implemented as a C script, because on non-Linux,
+ # nested shebang lines are not supported.
+ # The -lskarnet has to come at the end to support static builds.
+ $CC \
+ -O \
+ -Wall -Wpedantic \
+ -D "EXECLINEB_PATH()=\"$bin/bin/.execlineb-wrapped\"" \
+ -D "EXECLINE_BIN_PATH()=\"$bin/bin\"" \
+ -I "${skalibs.dev}/include" \
+ -L "${skalibs.lib}/lib" \
+ -o "$bin/bin/execlineb" \
+ ${./execlineb-wrapper.c} \
+ -lskarnet
+ '';
+}