]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Move --classifier to top-level parser
authorVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 3 Mar 2026 10:11:07 +0000 (10:11 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 3 Mar 2026 10:11:07 +0000 (10:11 +0000)
The --classifier option must be available for all subcommands
(dump, restore, migrate), not just dump and migrate. Move it
to the top-level parser and use select_classifier in restore
handler as well.

lualib/rspamadm/statistics_dump.lua

index 3bf6aaa200d312b4445e2015c7c1504b8b643872..7f1c07677d1a0b6a3eb598410a818945b4445b78 100644 (file)
@@ -48,6 +48,10 @@ parser:option "-b --batch-size"
     :convert(tonumber)
     :default(1000)
 
+parser:option "-S --classifier"
+    :description "Classifier name (required when multiple classifiers configured)"
+    :argname("<name>")
+
 -- Extract subcommand
 local dump = parser:command "dump d"
                    :description "Dump bayes statistics"
@@ -64,9 +68,6 @@ dump:option "-b --batch-size"
     :argname("<elts>")
     :convert(tonumber)
     :default(1000)
-dump:option "-S --classifier"
-    :description "Classifier name (required when multiple classifiers configured)"
-    :argname("<name>")
 
 
 -- Restore
@@ -105,9 +106,6 @@ migrate:option "-b --batch-size"
        :argname("<elts>")
        :convert(tonumber)
        :default(1000)
-migrate:option "-S --classifier"
-       :description "Classifier name (required when multiple classifiers configured)"
-       :argname("<name>")
 
 local function load_config(opts)
   local _r, err = rspamd_config:load_ucl(opts['config'])
@@ -643,10 +641,11 @@ local function execute_batch(batch, conns, opts)
 end
 
 local function restore_handler(opts)
+  local selected = select_classifier(opts)
   local files = opts.file or { '-' }
   local conns = {}
 
-  for _, cls in ipairs(classifiers) do
+  for _, cls in ipairs(selected) do
     local res, conn = lua_redis.redis_connect_sync(cls.redis_params, true)
 
     if not res then