|
|
@ -6,6 +6,7 @@ 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 |
|
|
@ -13,10 +14,28 @@ module Mastodon |
|
|
|
|
|
|
|
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 |
|
|
|
Chewy::RakeHelper.sync(except: processed) |
|
|
|
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 |