class Sidekiq::CLI
def setup_options(args)
def setup_options(args) # parse CLI options opts = parse_options(args) set_environment opts[:environment] # check config file presence if opts[:config_file] unless File.exist?(opts[:config_file]) raise ArgumentError, "No such file #{opts[:config_file]}" end else config_dir = if File.directory?(opts[:require].to_s) File.join(opts[:require], "config") else File.join(@config[:require], "config") end %w[sidekiq.yml sidekiq.yml.erb].each do |config_file| path = File.join(config_dir, config_file) opts[:config_file] ||= path if File.exist?(path) end end # parse config file options opts = parse_config(opts[:config_file]).merge(opts) if opts[:config_file] # set defaults opts[:queues] = ["default"] if opts[:queues].nil? opts[:concurrency] = Integer(ENV["RAILS_MAX_THREADS"]) if opts[:concurrency].nil? && ENV["RAILS_MAX_THREADS"] # merge with defaults @config.merge!(opts) @config.default_capsule.tap do |cap| cap.queues = opts[:queues] cap.concurrency = opts[:concurrency] || @config[:concurrency] end opts[:capsules]&.each do |name, cap_config| @config.capsule(name.to_s) do |cap| cap.queues = cap_config[:queues] cap.concurrency = cap_config[:concurrency] end end end