lib/thinking_sphinx/deploy/capistrano.rb in thinking-sphinx-1.5.0 vs lib/thinking_sphinx/deploy/capistrano.rb in thinking-sphinx-2.0.0.rc1
- old
+ new
@@ -1,17 +1,17 @@
Capistrano::Configuration.instance(:must_exist).load do
namespace :thinking_sphinx do
namespace :install do
desc <<-DESC
Install Sphinx by source
-
+
If Postgres is available, Sphinx will use it.
-
+
If the variable :thinking_sphinx_configure_args is set, it will
be passed to the Sphinx configure script. You can use this to
install Sphinx in a non-standard location:
-
+
set :thinking_sphinx_configure_args, "--prefix=$HOME/software"
DESC
task :sphinx do
with_postgres = false
@@ -20,80 +20,81 @@
with_postgres = !(data.nil? || data == "")
end
rescue Capistrano::CommandError => e
puts "Continuing despite error: #{e.message}"
end
-
+
args = []
if with_postgres
run "pg_config --pkgincludedir" do |channel, stream, data|
args << "--with-pgsql=#{data}"
end
end
args << fetch(:thinking_sphinx_configure_args, '')
-
+
commands = <<-CMD
- wget -q http://sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz >> sphinx.log
- tar xzvf sphinx-0.9.9.tar.gz
- cd sphinx-0.9.9
+ wget -q http://www.sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz >> sphinx.log
+ tar xzvf sphinx-0.9.8.1.tar.gz
+ cd sphinx-0.9.8.1
./configure #{args.join(" ")}
make
#{try_sudo} make install
- rm -rf sphinx-0.9.9 sphinx-0.9.9.tar.gz
+ rm -rf sphinx-0.9.8.1 sphinx-0.9.8.1.tar.gz
CMD
run commands.split(/\n\s+/).join(" && ")
end
-
- desc "Install Thinking Sphinx as a gem"
+
+ desc "Install Thinking Sphinx as a gem from GitHub"
task :ts do
- run "#{try_sudo} gem install thinking-sphinx"
+ run "#{try_sudo} gem install thinking-sphinx --source http://gemcutter.org"
end
end
-
+
desc "Generate the Sphinx configuration file"
task :configure do
rake "thinking_sphinx:configure"
end
-
+
desc "Index data"
task :index do
rake "thinking_sphinx:index"
end
-
+
desc "Start the Sphinx daemon"
task :start do
- rake "thinking_sphinx:configure thinking_sphinx:start"
+ configure
+ rake "thinking_sphinx:start"
end
-
+
desc "Stop the Sphinx daemon"
task :stop do
- rake "thinking_sphinx:configure thinking_sphinx:stop"
+ configure
+ rake "thinking_sphinx:stop"
end
-
+
desc "Stop and then start the Sphinx daemon"
task :restart do
- rake "thinking_sphinx:configure thinking_sphinx:stop \
- thinking_sphinx:start"
+ stop
+ start
end
-
+
desc "Stop, re-index and then start the Sphinx daemon"
task :rebuild do
- rake "thinking_sphinx:configure thinking_sphinx:stop \
- thinking_sphinx:reindex \
- thinking_sphinx:start"
+ stop
+ index
+ start
end
-
- desc "Add the shared folder for sphinx files"
+
+ desc "Add the shared folder for sphinx files for the production environment"
task :shared_sphinx_folder, :roles => :web do
- rails_env = fetch(:rails_env, "production")
- run "mkdir -p #{shared_path}/sphinx/#{rails_env}"
+ run "mkdir -p #{shared_path}/db/sphinx/production"
end
def rake(*tasks)
rails_env = fetch(:rails_env, "production")
rake = fetch(:rake, "rake")
tasks.each do |t|
- run "if [ -d #{release_path} ]; then cd #{release_path}; else cd #{current_path}; fi; if [ -f Rakefile ]; then #{rake} RAILS_ENV=#{rails_env} #{t}; fi;"
+ run "if [ -d #{release_path} ]; then cd #{release_path}; else cd #{current_path}; fi; #{rake} RAILS_ENV=#{rails_env} #{t}"
end
end
end
end