end
function colormt:__call(s)
- return self .. s .. _M.reset
+ return self .. s .. ansicolors.reset
end
colormt.__metatable = {}
for c, v in pairs(colors) do
ansicolors[c] = makecolor(v)
end
+
+return ansicolors
\ No newline at end of file
default = 1,
}
---.USE "getopt"
---.USE "ansicolors"
-
+local getopt = require "rspamadm/getopt"
+local ansicolors = require "rspamadm/ansicolors"
local function maybe_print_color(key)
if not opts['no-color'] then
end
return function(args, res)
- opts = getopt(args, '')
+ opts = getopt.getopt(args, '')
local sorted = sort_values(res)
return print_num(r)
end
---.USE "getopt"
+local getopt = require "rspamadm/getopt"
return function(args, res)
local res_ips = {}
local res_databases = {}
local wrk = res['workers']
- opts = getopt(args, '')
+ opts = getopt.getopt(args, '')
if wrk then
for _,pr in pairs(wrk) do
return tab
end
+return {
+ getopt = getopt
+}
${CMAKE_SOURCE_DIR}/src/worker.c
${CMAKE_SOURCE_DIR}/src/rspamd_proxy.c
${CMAKE_SOURCE_DIR}/src/log_helper.c)
-SET(RSPAMADMLUASRC
- ${CMAKE_CURRENT_SOURCE_DIR}/fuzzy_stat.lua
- ${CMAKE_CURRENT_SOURCE_DIR}/confighelp.lua)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
-ADD_CUSTOM_TARGET(rspamadm_lua_preprocess
- ${PERL_EXECUTABLE}
- "${CMAKE_SOURCE_DIR}/lua_preprocess.pl"
- "${CMAKE_CURRENT_SOURCE_DIR}"
- "${CMAKE_CURRENT_BINARY_DIR}"
- SOURCES ${RSPAMADMLUASRC} ${CMAKE_SOURCE_DIR}/lua_preprocess.pl)
IF (ENABLE_HYPERSCAN MATCHES "ON")
LIST(APPEND RSPAMADMSRC "${CMAKE_SOURCE_DIR}/src/hs_helper.c")
ENDIF()
{
rspamd_fstring_t *out;
+ rspamd_lua_set_path (cfg->lua_state, NULL, NULL);
out = rspamd_fstring_new ();
if (json) {
argc,
argv,
obj,
- rspamadm_script_confighelp);
+ "confighelp");
rspamd_fstring_free (out);
return;
#include "config.h"
#include "rspamadm.h"
#include "lua/lua_common.h"
-#include "fuzzy_convert.lua.h"
static gchar *source_db = NULL;
static gchar *redis_host = NULL;
}
L = rspamd_lua_init ();
+ rspamd_lua_set_path (L, NULL, NULL);
obj = ucl_object_typed_new (UCL_OBJECT);
ucl_object_insert_key (obj, ucl_object_fromstring (source_db),
argc,
argv,
obj,
- rspamadm_script_fuzzy_convert);
+ "fuzzy_convert");
lua_close (L);
ucl_object_unref (obj);
#include "config.h"
#include "rspamadm.h"
#include "lua/lua_common.h"
-#include "grep.lua.h"
static gchar *string = NULL;
static gchar *pattern = NULL;
}
L = rspamd_lua_init ();
+ rspamd_lua_set_path (L, NULL, NULL);
obj = ucl_object_typed_new (UCL_OBJECT);
if (string) {
argc,
argv,
obj,
- rspamadm_script_grep);
+ "grep");
lua_close (L);
ucl_object_unref (obj);
gboolean
rspamadm_execute_lua_ucl_subr (gpointer pL, gint argc, gchar **argv,
- const ucl_object_t *res, const gchar *script)
+ const ucl_object_t *res, const gchar *script_name)
{
lua_State *L = pL;
gint err_idx, i, ret;
GString *tb;
+ gchar str[PATH_MAX];
- g_assert (script != NULL);
+ g_assert (script_name != NULL);
g_assert (res != NULL);
g_assert (L != NULL);
- if (luaL_dostring (L, script) != 0) {
- msg_err ("cannot execute lua script: %s",
- lua_tostring (L, -1));
+ rspamd_snprintf (str, sizeof (str), "return require \"%s.%s\"", "rspamadm",
+ script_name);
+
+ if (luaL_dostring (L, str) != 0) {
+ msg_err ("cannot execute lua script %s: %s",
+ str, lua_tostring (L, -1));
return FALSE;
}
else {
if (lua_type (L, -1) != LUA_TFUNCTION) {
msg_err ("lua script must return "
"function and not %s",
- lua_typename (L,
- lua_type (L, -1)));
- lua_settop (L, 0);
+ lua_typename (L, lua_type (L, -1)));
return FALSE;
}
if ((ret = lua_pcall (L, 2, 0, err_idx)) != 0) {
tb = lua_touserdata (L, -1);
- msg_err ("call to adm lua script failed (%d): %v", ret, tb);
+ msg_err ("call to rspamadm lua script failed (%d): %v", ret, tb);
if (tb) {
g_string_free (tb, TRUE);
const struct rspamadm_command *rspamadm_search_command (const gchar *name);
gboolean rspamadm_execute_lua_ucl_subr (gpointer L, gint argc, gchar **argv,
- const ucl_object_t *res, const gchar *script);
+ const ucl_object_t *res, const gchar *script_name);
#endif
#include "config.h"
#include "rspamadm.h"
#include "lua/lua_common.h"
-#include "stat_convert.lua.h"
static gchar *source_db = NULL;
static gchar *redis_host = NULL;
}
L = rspamd_lua_init ();
+ rspamd_lua_set_path (L, NULL, NULL);
obj = ucl_object_typed_new (UCL_OBJECT);
ucl_object_insert_key (obj, ucl_object_fromstring (source_db),
argc,
argv,
obj,
- rspamadm_script_stat_convert);
+ "stat_convert");
lua_close (L);
ucl_object_unref (obj);