Skip to content

Instantly share code, notes, and snippets.

@Atalanta
Created December 29, 2010 19:27
Show Gist options
  • Save Atalanta/758935 to your computer and use it in GitHub Desktop.
Save Atalanta/758935 to your computer and use it in GitHub Desktop.
app = node.run_state[:current_app]
use_ree = false
if node.run_state[:seen_recipes].has_key?("ruby_enterprise")
use_ree = true
end
if app['packages']
app['packages'].each do |pkg,ver|
package pkg do
action :install
version ver if ver && ver.length > 0
end
end
end
if app['pips']
app['pips'].each do |pip,ver|
# do stuff
end
end
# Set up capistrano-like deploy infrastructure
directory app['deploy_to'] do
owner app['owner']
group app['group']
mode '0755'
recursive true
end
directory "#{app['deploy_to']}/shared" do
owner app['owner']
group app['group']
mode '0755'
recursive true
end
%w{ log pids system }.each do |dir|
directory "#{app['deploy_to']}/shared/#{dir}" do
owner app['owner']
group app['group']
mode '0755'
recursive true
end
end
if app.has_key?("deploy_key")
ruby_block "write_key" do
block do
f = File.open("#{app['deploy_to']}/id_deploy", "w")
f.print(app["deploy_key"])
f.close
end
not_if do File.exists?("#{app['deploy_to']}/id_deploy"); end
end
file "#{app['deploy_to']}/id_deploy" do
owner app['owner']
group app['group']
mode '0600'
end
template "#{app['deploy_to']}/deploy-ssh-wrapper" do
source "deploy-ssh-wrapper.erb"
owner app['owner']
group app['group']
mode "0755"
variables app.to_hash
end
end
deploy_revision app['id'] do
revision app['revision'][node.app_environment]
repository app['repository']
user app['owner']
group app['group']
deploy_to app['deploy_to']
environment 'WTF_DJANGO_ENV' => node.app_environment
action app['force'][node.app_environment] ? :force_deploy : :deploy
ssh_wrapper "#{app['deploy_to']}/deploy-ssh-wrapper" if app['deploy_key']
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment