about summary refs log tree commit diff
path: root/pkgs/development/lua-modules
diff options
context:
space:
mode:
authorLuka Blaskovic <lblasc@tvbeat.com>2018-02-25 20:48:48 +0000
committerLuka Blaskovic <lblasc@tvbeat.com>2018-02-25 21:24:47 +0000
commit7b7607382d33457cfda337e6576ccdf4eb1e1c16 (patch)
tree0d2d935cc8e93c4ec62dc613391d1499d03a2b43 /pkgs/development/lua-modules
parent8645a1b69dd3e9d5550c2d96d56d712a1b2deec8 (diff)
downloadnixlib-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar
nixlib-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.gz
nixlib-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.bz2
nixlib-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.lz
nixlib-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.xz
nixlib-7b7607382d33457cfda337e6576ccdf4eb1e1c16.tar.zst
nixlib-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.nix33
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 7152d0b9e360..091ae06ab910 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
+      '';
     }
   )