Skip to content

Instantly share code, notes, and snippets.

@onsails
Created July 28, 2010 21:57
Show Gist options
  • Save onsails/496480 to your computer and use it in GitHub Desktop.
Save onsails/496480 to your computer and use it in GitHub Desktop.
# :%s/%appname%/_appname_/g
# :%s/%appname%/_username_/g
# :%s/%domain%/_domain_/g
set :application, "%appname%"
set :repository, "[email protected]:smix/%appname%.git"
set :deploy_to, "/var/rails/%appname%"
set :deploy_via, :remote_cache
set :branch, 'master'
set :scm, :git
set :scm_verbose, true
set :use_sudo, false
default_run_options[:pty] = true
ssh_options[:paranoid] = false
ssh_options[:user] = "%username%"
set :domain, "%domain%"
server domain, :app, :web
role :db, domain, :primary => true
namespace :deploy do
task :restart, :roles => :app do
run "touch #{current_path}/tmp/restart.txt"
end
task :restart_cronjobs do
run <<-CMD
cd #{latest_release};
RAILS_ENV=production script/cron stop;
RAILS_ENV=production script/cron start;
CMD
end
namespace :gems do
desc "Install required gems"
task :install do
run <<-CMD
cd #{latest_release};
#{sudo} rake gems:install;
CMD
end
end
namespace :daemon do
task :start do
run <<-CMD
cd #{latest_release};
RAILS_ENV=production script/cron start;
CMD
end
task :restart do
run <<-CMD
cd #{latest_release};
RAILS_ENV=production script/cron restart;
CMD
end
task :stop do
run <<-CMD
cd #{latest_release};
RAILS_ENV=production script/cron stop;
CMD
end
end
task :create_shared_dirs do
run <<-CMD
mkdir #{shared_path}/config;
mkdir #{shared_path}/db;
CMD
end
task :create_log_files do
run "touch #{shared_path/log/development.log} #{shared_path}/log/production.log #{shared_path}/log/test.log"
end
namespace :db do
desc "Create database yaml in shared path"
task :default do
db_config = ERB.new <<-EOF
base: &base
adapter: mysql
socket: /tmp/mysql.sock
username: #{user}
password: #{password}
development:
database: #{application}_dev
<<: *base
test:
database: #{application}_test
<<: *base
production:
database: #{application}_prod
<<: *base
EOF
run "mkdir -p #{shared_path}/config"
put db_config.result, "#{shared_path}/config/database.yml"
end
desc "Make symlink for database yaml"
task :symlink do
run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
end
end
end
#after "deploy:update_code", "deploy:symlink_configs"
after "deploy:setup", "deploy:create_shared_dirs"
after "deploy:setup", "deploy:create_log_files"
#after :deploy, "deploy:restart_cronjobs"
#after :deploy, "deploy:migrate"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment