# # Cookbook Name:: deploy # Recipe:: rails-undeploy include_recipe 'deploy' node[:deploy].each do |application, deploy| if deploy[:application_type] != 'rails' Chef::Log.debug("Skipping deploy::rails-undeploy application #{application} as it is not an Rails app") next end case node[:opsworks][:rails_stack][:name] when 'apache_passenger' if node[:opsworks][:rails_stack][:service] include_recipe "#{node[:opsworks][:rails_stack][:service]}::service" end link "#{node[:apache][:dir]}/sites-enabled/#{application}.conf" do action :delete only_if do ::File.exists?("#{node[:apache][:dir]}/sites-enabled/#{application}.conf") end notifies :restart, "service[#{node[:opsworks][:rails_stack][:service]}]" end file "#{node[:apache][:dir]}/sites-available/#{application}.conf" do action :delete only_if do ::File.exists?("#{node[:apache][:dir]}/sites-available/#{application}.conf") end notifies :restart, "service[#{node[:opsworks][:rails_stack][:service]}]" end when 'nginx_unicorn' include_recipe 'nginx::service' link "/etc/nginx/sites-enabled/#{application}" do action :delete only_if do ::File.exists?("/etc/nginx/sites-enabled/#{application}") end notifies :restart, "service[nginx]" end file "/etc/nginx/sites-available/#{application}" do action :delete only_if do ::File.exists?("/etc/nginx/sites-available/#{application}") end end execute 'stop unicorn and restart nginx' do command "sleep #{deploy[:sleep_before_restart]} && \ #{deploy[:deploy_to]}/shared/scripts/unicorn stop" notifies :restart, "service[nginx]" action :run end else raise 'Unsupported Rails stack' end directory "#{deploy[:deploy_to]}" do recursive true action :delete only_if do File.exists?("#{deploy[:deploy_to]}") end end end