lib/generators/daemon_kit/capistrano/templates/config/deploy.rb.tt
# Modified capistrano recipe, based on the standard 'deploy' recipe
# provided by capistrano but without the Rails-specific dependencies
set :stages, %w(staging production)
set :default_stage, "staging"
require "capistrano/ext/multistage"
# Set some globals
default_run_options[:pty] = true
set :application, "<%= app_name %>"
# Deployment
set :deploy_to, "/svc/#{application}"
#set :user, 'someone'
# Get repo configuration
set :repository, "git@github.com:yourname/#{application}.git"
set :scm, "git"
set :branch, "master"
set :deploy_via, :remote_cache
set :git_enable_submodules, 1
# No sudo
set :use_sudo, false
# See `cap -e deploy:copy_configs`
set :config_files, %w{}
# List any work directories here that you need persisted between
# deployments. They are created in 'deploy_to'/shared and symlinked
# into the root directory of the deployment.
set :shared_children, %w{log tmp}
# Hook into capistrano's events
before "deploy:update_code", "deploy:check"
# Setup log rotation support with every deploy (safe)
#after 'deploy:symlink', 'deploy:logrotate'
# Switch me off if you don't want Bundler integration
require "bundler/capistrano"
# Create some tasks related to deployment
namespace :deploy do
desc "Get the current revision of the deployed code"
task :get_current_version do
run "cat #{current_path}/REVISION" do |ch, stream, out|
puts "Current revision: " + out.chomp
end
end
desc "Install log rotation script on server"
task :logrotate do
require 'erb'
upload_path = "#{shared_path}/system/logrotate"
template = File.read("config/deploy/logrotate.erb")
file = ERB.new(template).result(binding)
put file, upload_path, :mode => 0644
run "if [ -e /etc/logrotate.d ]; then sudo cp #{shared_path}/system/logrotate /etc/logrotate.d/#{name}; fi"
end
end