From 7e4ca609fb80edeb3e618448837936f1dab59c1f Mon Sep 17 00:00:00 2001 From: "Marcos G. Zimmermann" Date: Thu, 21 Nov 2024 15:12:04 -0300 Subject: [PATCH] feat: add --enqueue-remaining option to cli --- lib/site_maps/cli.rb | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/site_maps/cli.rb b/lib/site_maps/cli.rb index 3c6dab8..064bb18 100644 --- a/lib/site_maps/cli.rb +++ b/lib/site_maps/cli.rb @@ -8,6 +8,7 @@ class CLI < Thor method_option :config_file, type: :string, aliases: "-r", default: nil method_option :max_threads, type: :numeric, aliases: "-c", default: 4 method_option :context, type: :hash, default: {} + method_option :enqueue_remaining, type: :boolean, default: false desc "generate 1st_process,2nd_process ... ,Nth_process", "Generate sitemap.xml files for the given processes" default_command :start @@ -16,27 +17,30 @@ def generate(processes = "") load_rails if rails_app? opts = (@options || {}).transform_keys(&:to_sym) - if (logfile = opts.delete(:logfile)) + if (logfile = opts[:logfile]) SiteMaps.logger = Logger.new(logfile) end - if opts.delete(:debug) + if opts[:debug] SiteMaps.logger.level = Logger::DEBUG end SiteMaps::Notification.subscribe(SiteMaps::Runner::EventListener) runner = SiteMaps.generate( - config_file: opts.delete(:config_file), - max_threads: opts.delete(:max_threads) + config_file: opts[:config_file], + max_threads: opts[:max_threads] ) if processes.empty? runner.enqueue_all else - kwargs = opts.delete(:context) { {} }.transform_keys(&:to_sym) + kwargs = (opts[:context] || {}).transform_keys(&:to_sym) processes.split(",").each do |process| runner.enqueue(process.strip.to_sym, **kwargs) end end + if opts[:enqueue_remaining] + runner.enqueue_remaining + end runner.run end