liminix/pkgs/write-fennel-script/default.nix

22 lines
630 B
Nix

{
runCommand
, luaSmall
, runtimeShell
, lib
}:
let lua = luaSmall;
in name : packages : source :
let
luapath = builtins.map (f: "${f}/share/lua/${lua.luaversion}/?.lua;") packages;
luacpath = builtins.map (f: "${f}/lib/lua/${lua.luaversion}/?.so;") packages;
in runCommand name {} ''
#!${runtimeShell}
(
echo "#!${lua}/bin/lua"
echo "package.path = ${lib.strings.escapeShellArg luapath} .. package.path"
echo "package.cpath = ${lib.strings.escapeShellArg luacpath} .. package.cpath"
${lua.pkgs.fennel}/bin/fennel --compile ${source}
) > $out
chmod a+x $out
''