Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

111 lines (88 sloc) 2.834 kb
# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
set :config_yaml, YAML.load_file(File.dirname(__FILE__) + '/deploy_config.yml')
require './config/cap_colors'
require 'bundler/capistrano'
require './config/boot'
require 'airbrake/capistrano'
set :bundle_dir, ''
set :stages, ['production', 'staging']
set :default_stage, 'staging'
require 'capistrano/ext/multistage'
set :application, 'diaspora'
set :scm, :git
set :use_sudo, false
set :scm_verbose, true
set :repository_cache, "remote_cache"
set :deploy_via, :checkout
set :bundle_without, [:development, :test, :heroku]
# Figure out the name of the current local branch
def current_git_branch
branch = `git symbolic-ref HEAD 2> /dev/null`.strip.gsub(/^refs\/heads\//, '')
logger.info "Deploying branch #{branch}"
branch
end
namespace :deploy do
task :symlink_config_files do
run "ln -s -f #{shared_path}/config/database.yml #{current_path}/config/database.yml"
run "ln -s -f #{shared_path}/config/application.yml #{current_path}/config/application.yml"
run "ln -s -f #{shared_path}/config/oauth_keys.yml #{current_path}/config/oauth_keys.yml"
end
task :symlink_cookie_secret do
run "ln -s -f #{shared_path}/config/initializers/secret_token.rb #{current_path}/config/initializers/secret_token.rb"
end
task :bundle_static_assets do
run "cd #{current_path} && bundle exec rake assets:precompile"
end
task :restart do
thins = capture_svstat "/service/thin*"
matches = thins.split("\n").inject([]) do |list, line|
m = line.match(/(thin_\d+):/)
list << m.captures[0] unless m.nil?
end
matches.each_with_index do |thin, index|
unless index == 0
puts "sleeping for 20 seconds"
sleep(20)
end
svc "-t /service/#{thin}"
end
svc "-t /service/resque_worker*"
end
task :kill do
svc "-k /service/thin*"
svc "-k /service/resque_worker*"
end
task :start do
svc "-u /service/thin*"
svc "-u /service/resque_worker*"
end
task :stop do
svc "-d /service/thin*"
svc "-d /service/resque_worker*"
end
desc 'Copy resque-web assets to public folder'
task :copy_resque_assets do
target = "#{release_path}/public/resque-jobs"
run "cp -r `cd #{release_path} && bundle show resque`/lib/resque/server/public #{target}"
end
end
before 'deploy:update' do
set :branch, current_git_branch
end
after 'deploy:symlink' do
deploy.symlink_config_files
deploy.symlink_cookie_secret
deploy.bundle_static_assets
deploy.copy_resque_assets
end
def maybe_sudo(cmd)
"#{svc_sudo ? sudo : ''} #{cmd}"
end
def svc(opts)
run(maybe_sudo("svc #{opts}"))
end
def capture_svstat(opts)
capture(maybe_sudo("svstat #{opts}"))
end
Jump to Line
Something went wrong with that request. Please try again.