forked from DGNum/liminix
add fennelrepl package
Runs fennel using a Lua compiled with the same options as the host system, and with packages set up so it can find all the local Lua packages To shorten the dev feedback loop further, allows FENNEL_PATH to be set on the command line so you can point directly it at the Fennel sources for some library you're working against instead of having to run nix-build and compile them to Lua
This commit is contained in:
parent
24befe6bf7
commit
c3bb33c9ce
3 changed files with 36 additions and 0 deletions
|
@ -58,6 +58,7 @@ in {
|
|||
borderVm.build.vm
|
||||
go-l2tp
|
||||
min-copy-closure
|
||||
fennelrepl
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -57,4 +57,5 @@
|
|||
kernel-modules = callPackage ./kernel-modules {};
|
||||
odhcp-script = callPackage ./odhcp-script {};
|
||||
fennel = callPackage ./fennel {};
|
||||
fennelrepl = callPackage ./fennelrepl {};
|
||||
}
|
||||
|
|
34
pkgs/fennelrepl/default.nix
Normal file
34
pkgs/fennelrepl/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
runCommand
|
||||
, runtimeShell
|
||||
, fetchurl
|
||||
, lib
|
||||
, luaPackages
|
||||
, lua
|
||||
, writeScriptBin
|
||||
, linotify
|
||||
, anoia
|
||||
, fennel
|
||||
}:
|
||||
let packages = [
|
||||
linotify
|
||||
anoia
|
||||
fennel
|
||||
];
|
||||
join = ps: builtins.concatStringsSep ";" ps;
|
||||
luapath = join (builtins.map (f: "${f}/share/lua/${lua.luaversion}/?.lua") packages);
|
||||
luacpath = join (builtins.map (f: "${f}/lib/lua/${lua.luaversion}/?.so") packages);
|
||||
|
||||
in writeScriptBin "fennelrepl" ''
|
||||
#!${lua}/bin/lua
|
||||
package.path = ${lib.strings.escapeShellArg luapath} .. ";" .. package.path
|
||||
package.cpath = ${lib.strings.escapeShellArg luacpath} .. ";" .. (package.cpath or "")
|
||||
local fennel = require "fennel"
|
||||
fennel.install()
|
||||
local more_fennel = os.getenv("FENNEL_PATH")
|
||||
if more_fennel then
|
||||
fennel.path = more_fennel .. ";" .. fennel.path
|
||||
end
|
||||
print("path", fennel.path)
|
||||
fennel.repl()
|
||||
''
|
Loading…
Reference in a new issue