default.nix (1165B)
1 { 2 runCommand 3 , runtimeShell 4 , fetchurl 5 , lib 6 , luaPackages 7 , lua 8 , writeScriptBin 9 , linotify 10 , anoia 11 , netlink-lua 12 , fennel 13 }: 14 let packages = [ 15 linotify 16 anoia 17 fennel 18 netlink-lua 19 lua.pkgs.luafilesystem 20 ]; 21 join = ps: builtins.concatStringsSep ";" ps; 22 luapath = join (builtins.map (f: 23 "${f}/share/lua/${lua.luaversion}/?.lua;" + 24 "${f}/share/lua/${lua.luaversion}/?/init.lua" 25 ) packages); 26 luacpath = join (builtins.map (f: "${f}/lib/lua/${lua.luaversion}/?.so") packages); 27 28 in writeScriptBin "fennelrepl" '' 29 #!${lua}/bin/lua 30 package.path = ${lib.strings.escapeShellArg luapath} .. ";" .. package.path 31 package.cpath = ${lib.strings.escapeShellArg luacpath} .. ";" .. (package.cpath or "") 32 local fennel = require "fennel" 33 table.insert(package.loaders or package.searchers,1, fennel.searcher) 34 35 local more_fennel = os.getenv("FENNEL_PATH") 36 if more_fennel then 37 fennel.path = more_fennel .. ";" .. fennel.path 38 end 39 if #arg > 0 then 40 script = table.remove(arg, 1) 41 fennel.dofile(script, {correlate = true}, arg) 42 else 43 fennel.repl() 44 end 45 ''