Skip to content

Instantly share code, notes, and snippets.

@yannvery
Forked from muscardinus/sunspot.cap
Last active August 29, 2015 14:06
Show Gist options
  • Save yannvery/18269b1ff902895d79c3 to your computer and use it in GitHub Desktop.
Save yannvery/18269b1ff902895d79c3 to your computer and use it in GitHub Desktop.
namespace :deploy do
before :updated, :setup_solr_data_dir do
on roles(:app) do
unless test "[ -d #{shared_path}/solr/data ]"
execute :mkdir, "-p #{shared_path}/solr/data"
end
end
end
end
namespace :solr do
%w[start stop].each do |command|
desc "#{command} solr"
task command do
on roles(:app) do
solr_pid = "#{shared_path}/pids/sunspot-solr.pid"
if command == "start" or (test "[ -f #{solr_pid} ]" and test "kill -0 $( cat #{solr_pid} )")
within current_path do
with rails_env: fetch(:rails_env, 'production') do
execute :bundle, 'exec', 'sunspot-solr', command, "--port=8983 --data-directory=#{shared_path}/solr/data --pid-dir=#{shared_path}/pids"
end
end
end
end
end
end
desc "restart solr"
task :restart do
invoke 'solr:stop'
invoke 'solr:start'
end
after 'deploy:finished', 'solr:restart'
desc "reindex the whole solr database"
task :reindex do
invoke 'solr:stop'
on roles(:app) do
execute :rm, "-rf #{shared_path}/solr/data"
end
invoke 'solr:start'
on roles(:app) do
within current_path do
with rails_env: fetch(:rails_env, 'production') do
info "Reindexing Solr database"
execute :bundle, 'exec', :rake, 'sunspot:solr:reindex[,,true]'
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment