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