]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Load redis scripts from the prefix to simplify calls
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 25 Mar 2023 12:30:15 +0000 (12:30 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 25 Mar 2023 12:30:15 +0000 (12:30 +0000)
lualib/lua_redis.lua
lualib/lua_util.lua

index 6f59cbc4f07a12ea67aec19074b8c8277f0f216d..76e8db97262f46c3a799576d8f55c93e6aa80266 100644 (file)
@@ -1286,9 +1286,15 @@ exports.add_redis_script = add_redis_script
 -- @param redis_params The Redis parameters to use for this script.
 -- @return The ID of the newly added Redis script.
 --
-local function load_redis_script_from_file(filename, redis_params)
+local function load_redis_script_from_file(filename, redis_params, dir)
   local lua_util = require "lua_util"
   local rspamd_logger = require "rspamd_logger"
+
+  if not dir then dir = rspamd_paths.LUALIBDIR end
+  if filename:sub(1, 1) ~= package.config:sub(1,1) then
+    -- Relative path
+    filename = lua_util.join_path(dir, filename)
+  end
   -- Read file contents
   local file = io.open(filename, "r")
   if not file then
index e745099a70f12529cf034d7261d81e41a187d431..c2bdf40a9ace2aab2059dcf455de73280b4e84ce 100644 (file)
@@ -1574,6 +1574,13 @@ local function join_path(...)
 end
 exports.join_path = join_path
 
+-- Short unit test for sanity
+if path_sep == '/' then
+  assert(join_path('/path', 'to', 'file') == '/path/to/file')
+else
+  assert(join_path('C:', 'path', 'to', 'file') == 'C:\\path\\to\\file')
+end
+
 -- Defines symbols priorities for common usage in prefilters/postfilters
 exports.symbols_priorities = {
   top = 10, -- Symbols must be executed first (or last), such as settings