diff options
author | Luka Blaskovic <lblasc@tvbeat.com> | 2018-02-25 20:48:48 +0000 |
---|---|---|
committer | Luka Blaskovic <lblasc@tvbeat.com> | 2018-02-25 21:24:47 +0000 |
commit | 7b7607382d33457cfda337e6576ccdf4eb1e1c16 (patch) | |
tree | 0d2d935cc8e93c4ec62dc613391d1499d03a2b43 /pkgs/development/lua-modules | |
parent | 8645a1b69dd3e9d5550c2d96d56d712a1b2deec8 (diff) | |
download | nixpkgs-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar nixpkgs-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.gz nixpkgs-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.bz2 nixpkgs-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.lz nixpkgs-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.xz nixpkgs-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.zst nixpkgs-7b7607382d33457cfda337e6576ccdf4eb1e1c16.zip |
lua packages: propagate libs with a setupHook
The LUA_PATH and LUA_CPATH variables are needed to load libraries. This setupHook exports them to the environment.
Diffstat (limited to 'pkgs/development/lua-modules')
-rw-r--r-- | pkgs/development/lua-modules/generic/default.nix | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/pkgs/development/lua-modules/generic/default.nix b/pkgs/development/lua-modules/generic/default.nix index 7152d0b9e36..091ae06ab91 100644 --- a/pkgs/development/lua-modules/generic/default.nix +++ b/pkgs/development/lua-modules/generic/default.nix @@ -1,4 +1,4 @@ -lua: +{ lua, writeText }: { buildInputs ? [], disabled ? false, ... } @ attrs: @@ -19,5 +19,36 @@ else { name = "lua${lua.luaversion}-" + attrs.name; buildInputs = buildInputs ++ [ lua ]; + + setupHook = writeText "setup-hook.sh" '' + # check for lua/clua modules and don't add duplicates + + addLuaLibPath() { + local package_path="$1/share/lua/${lua.luaversion}" + if [[ ! -d $package_path ]]; then return; fi + if [[ $LUA_PATH = *"$package_path"* ]]; then return; fi + + if [[ -z $LUA_PATH ]]; then + export LUA_PATH="$package_path/?.lua" + else + export LUA_PATH="$LUA_PATH;$package_path/?.lua" + fi + } + + addLuaLibCPath() { + local package_cpath="$1/lib/lua/${lua.luaversion}" + if [[ ! -d $package_cpath ]]; then return; fi + if [[ $LUA_CPATH = *"$package_cpath"* ]]; then return; fi + + if [[ -z $LUA_CPATH ]]; then + export LUA_CPATH="$package_cpath/?.so" + else + export LUA_CPATH="$LUA_CPATH;$package_cpath/?.so" + fi + } + + addEnvHooks "$hostOffset" addLuaLibPath + addEnvHooks "$hostOffset" addLuaLibCPath + ''; } ) |