* Add parallel gem * Modify parallel option in tootctl search deploy * Add paralell option to tootctl search deploy * Change 1 to false * Clean up * Rename --parallel to --processes
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
require_relative '../../config/boot'
 | 
						|
require_relative '../../config/environment'
 | 
						|
require_relative 'cli_helper'
 | 
						|
 | 
						|
module Mastodon
 | 
						|
  class SearchCLI < Thor
 | 
						|
    option :processes, default: 2, aliases: [:p]
 | 
						|
    desc 'deploy', 'Create or update an ElasticSearch index and populate it'
 | 
						|
    long_desc <<~LONG_DESC
 | 
						|
      If ElasticSearch is empty, this command will create the necessary indices
 | 
						|
      and then import data from the database into those indices.
 | 
						|
 | 
						|
      This command will also upgrade indices if the underlying schema has been
 | 
						|
      changed since the last run.
 | 
						|
 | 
						|
      With the --processes option, parallelize execution of the command. The
 | 
						|
      default is 2. If "auto" is specified, the number is automatically
 | 
						|
      derived from available CPUs.
 | 
						|
    LONG_DESC
 | 
						|
    def deploy
 | 
						|
      processed = Chewy::RakeHelper.upgrade(parallel: processes)
 | 
						|
      Chewy::RakeHelper.sync(except: processed, parallel: processes)
 | 
						|
    end
 | 
						|
 | 
						|
    private
 | 
						|
 | 
						|
    def processes
 | 
						|
      return true if options[:processes] == 'auto'
 | 
						|
 | 
						|
      num = options[:processes].to_i
 | 
						|
 | 
						|
      if num < 2
 | 
						|
        nil
 | 
						|
      else
 | 
						|
        num
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |