nixos/httpd: fix lua paths
Account for the fact that, when creating a lua package without the "withPackages" helper, we dont get an extra "lua" attribute in the package. Therefore we need to distinguish between the "withPackages" case and the direct ( or "empty" ) lua package. For example with this nixos config: ```nix { services.httpd = { enable = true; package = pkgs.apacheHttpd.override { luaSupport = true; lua5 = pkgs.lua5_3.withPackages (ps: with ps; [ luafilesystem ] ); }; }; } ``` Here we say that we want to have apache to use a lua, packaged with the `luafilesystem` module so that we can `require` that in scripts to render http responses. There, the set that gets assigned to `lua5 ` does not have a `luaversion` attribute, rather it has a `lua` attribute wherein lies a `luaversion` attribute. If we dont package additional modules, then we dont have that `lua` attribute in between and rather directly have to use `luaversion` directly.
This commit is contained in:
parent
dd65c8b2a7
commit
7c121e60c5
@ -126,10 +126,14 @@ let
|
||||
</IfModule>
|
||||
'';
|
||||
|
||||
luaSetPaths = ''
|
||||
luaSetPaths = let
|
||||
# support both lua and lua.withPackages derivations
|
||||
luaversion = cfg.package.lua5.lua.luaversion or cfg.package.lua5.luaversion;
|
||||
in
|
||||
''
|
||||
<IfModule mod_lua.c>
|
||||
LuaPackageCPath ${cfg.package.lua5}/lib/lua/${cfg.package.lua5.lua.luaversion}/?.so
|
||||
LuaPackagePath ${cfg.package.lua5}/share/lua/${cfg.package.lua5.lua.luaversion}/?.lua
|
||||
LuaPackageCPath ${cfg.package.lua5}/lib/lua/${luaversion}/?.so
|
||||
LuaPackagePath ${cfg.package.lua5}/share/lua/${luaversion}/?.lua
|
||||
</IfModule>
|
||||
'';
|
||||
|
||||
@ -333,7 +337,7 @@ let
|
||||
|
||||
${sslConf}
|
||||
|
||||
${if cfg.package.luaSupport then luaSetPaths else ""}
|
||||
${optionalString cfg.package.luaSupport luaSetPaths}
|
||||
|
||||
# Fascist default - deny access to everything.
|
||||
<Directory />
|
||||
|
Loading…
Reference in New Issue
Block a user