add writeFennelScript function, make ifwait use it

This commit is contained in:
Daniel Barlow 2023-05-29 20:20:12 +01:00
parent fa7e682e87
commit fdffdbb22a
6 changed files with 51 additions and 27 deletions

View file

@ -1,34 +1,13 @@
{
luaSmall
, netlink-lua
, stdenv
, makeWrapper
, writeFennelScript
, runCommand
}:
let
lua = luaSmall;
netlink = netlink-lua.override {inherit lua;};
fennel = lua.pkgs.fennel;
in stdenv.mkDerivation rec {
pname = "ifwait";
version = "1";
phases = [ "installPhase" ];
buildInputs = [ lua netlink ];
nativeBuildInputs = [ makeWrapper fennel ];
LUA_CPATH = "${netlink}/lib/lua/${lua.luaversion}/\?.so"; # for nix-shell
installPhase = ''
mkdir -p $out/bin $out/lib
fennel --compile ${./ifwait.fnl} > $out/lib/${pname}.lua
makeWrapper ${lua}/bin/lua $out/bin/${pname} \
--prefix LUA_CPATH ";" ${netlink}/lib/lua/${lua.luaversion}/\?.so \
--add-flags $out/lib/${pname}.lua
# makeWrapper adds a shebang for bash
sed -i -e '1c#!/bin/sh' $out/bin/${pname}
'';
}
# to use fennel.view,
# --prefix LUA_PATH ";" ${fennel}/share/lua/5.2/\?.lua \
in runCommand "ifwait" {} ''
mkdir -p $out/bin
cp -p ${writeFennelScript "ifwait" [netlink] ./ifwait.fnl} $out/bin/ifwait
''