Skip to content

Commit

Permalink
Capistrano task fix, thanks to Mike Bailey. Can now use require inste…
Browse files Browse the repository at this point in the history
…ad of load.
  • Loading branch information
pat committed May 19, 2009
1 parent 0ea3927 commit 2e9d886
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 64 deletions.
1 change: 1 addition & 0 deletions README.textile
Expand Up @@ -124,3 +124,4 @@ Since I first released this library, there's been quite a few people who have su
* Mark Lane
* Eric Lindvall
* Lawrence Pit
* Mike Bailey
130 changes: 66 additions & 64 deletions lib/thinking_sphinx/deploy/capistrano.rb
@@ -1,80 +1,82 @@
namespace :thinking_sphinx do
namespace :install do
desc "Install Sphinx by source"
task :sphinx do
with_postgres = false
run "which pg_config" do |channel, stream, data|
with_postgres = !(data.nil? || data == "")
end
Capistrano::Configuration.instance(:must_exist).load do
namespace :thinking_sphinx do
namespace :install do
desc "Install Sphinx by source"
task :sphinx do
with_postgres = false
run "which pg_config" do |channel, stream, data|
with_postgres = !(data.nil? || data == "")
end

args = []
if with_postgres
run "pg_config --pkgincludedir" do |channel, stream, data|
args << "--with-pgsql=#{data}"
args = []
if with_postgres
run "pg_config --pkgincludedir" do |channel, stream, data|
args << "--with-pgsql=#{data}"
end
end
end

commands = <<-CMD
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
sudo make install
rm -rf sphinx-0.9.8.1 sphinx-0.9.8.1.tar.gz
CMD
run commands.split(/\n\s+/).join(" && ")
end
commands = <<-CMD
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
sudo make install
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 from GitHub"
task :ts do
sudo "gem install freelancing-god-thinking-sphinx --source http://gems.github.com"
desc "Install Thinking Sphinx as a gem from GitHub"
task :ts do
sudo "gem install freelancing-god-thinking-sphinx --source http://gems.github.com"
end
end
end

desc "Generate the Sphinx configuration file"
task :configure do
rake "thinking_sphinx:configure"
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 "Index data"
task :index do
rake "thinking_sphinx:index"
end

desc "Start the Sphinx daemon"
task :start do
configure
rake "thinking_sphinx:start"
end
desc "Start the Sphinx daemon"
task :start do
configure
rake "thinking_sphinx:start"
end

desc "Stop the Sphinx daemon"
task :stop do
configure
rake "thinking_sphinx:stop"
end
desc "Stop the Sphinx daemon"
task :stop do
configure
rake "thinking_sphinx:stop"
end

desc "Stop and then start the Sphinx daemon"
task :restart do
stop
start
end
desc "Stop and then start the Sphinx daemon"
task :restart do
stop
start
end

desc "Stop, re-index and then start the Sphinx daemon"
task :rebuild do
stop
index
start
end
desc "Stop, re-index and then start the Sphinx daemon"
task :rebuild do
stop
index
start
end

desc "Add the shared folder for sphinx files for the production environment"
task :shared_sphinx_folder, :roles => :web do
sudo "mkdir -p #{shared_path}/db/sphinx/production"
end
desc "Add the shared folder for sphinx files for the production environment"
task :shared_sphinx_folder, :roles => :web do
sudo "mkdir -p #{shared_path}/db/sphinx/production"
end

def rake(*tasks)
tasks.each do |t|
run "cd #{current_path} && rake #{t} RAILS_ENV=production"
def rake(*tasks)
tasks.each do |t|
run "cd #{current_path} && rake #{t} RAILS_ENV=production"
end
end
end
end

0 comments on commit 2e9d886

Please sign in to comment.