default.nix (854B)
1 { 2 lua 3 , lib 4 , fennel 5 , stdenv 6 }: 7 name : packages : source : 8 let 9 luapath = builtins.map 10 (f: 11 "${f}/share/lua/${lua.luaversion}/?.lua;" + 12 "${f}/share/lua/${lua.luaversion}/?/init.lua;") 13 packages; 14 luacpath = builtins.map (f: "${f}/lib/lua/${lua.luaversion}/?.so;") packages; 15 in stdenv.mkDerivation { 16 inherit name; 17 src = ./.; 18 nativeBuildInputs = [ fennel ]; 19 buildPhase = '' 20 ( 21 echo "#!${lua}/bin/lua" 22 echo "package.path = ${lib.strings.escapeShellArg (builtins.concatStringsSep "" luapath)} .. package.path" 23 echo "package.cpath = ${lib.strings.escapeShellArg (builtins.concatStringsSep "" luacpath)} .. package.cpath" 24 fennel --correlate --compile ${source} 25 ) > ${name}.lua 26 ''; 27 installPhase = '' 28 cp ${name}.lua $out 29 chmod +x $out 30 ''; 31 }