nixpkgs/pkgs/development/interpreters/lua-5/hooks/default.nix
Matthieu Coudron 640cdcb814 lua: smarter/more correct patching
In order to have the 'reset' LUA_PATH (aka `;;`) work, and for purity
reasons(removing /usr paths) we(I) decided to patch the lua interpreters default LUA_PATH.
Turns out the interpreters have different defaults and the patch was too
coarse.
There is smarter patching that can be done via LUA_ROOT.

Also luajit doesn't need patching at all since LUA_ROOT is set via the
build system.
2024-03-16 14:37:09 +01:00

40 lines
1.0 KiB
Nix

# Hooks for building lua packages.
{ lua
, lib
, makeSetupHook
, findutils
, runCommand
}:
let
callPackage = lua.pkgs.callPackage;
in {
lua-setup-hook = LuaPathSearchPaths: LuaCPathSearchPaths:
let
hook = ./setup-hook.sh;
in runCommand "lua-setup-hook.sh" {
# hum doesn't seem to like caps !! BUG ?
luapathsearchpaths=lib.escapeShellArgs LuaPathSearchPaths;
luacpathsearchpaths=lib.escapeShellArgs LuaCPathSearchPaths;
} ''
cp ${hook} hook.sh
substituteAllInPlace hook.sh
mv hook.sh $out
'';
luarocksCheckHook = callPackage ({ luarocks }:
makeSetupHook {
name = "luarocks-check-hook";
propagatedBuildInputs = [ luarocks ];
} ./luarocks-check-hook.sh) {};
# luarocks installs data in a non-overridable location. Until a proper luarocks patch,
# we move the files around ourselves
luarocksMoveDataFolder = callPackage ({ }:
makeSetupHook {
name = "luarocks-move-rock";
propagatedBuildInputs = [ ];
} ./luarocks-move-data.sh) {};
}