lib/caploy/recipes/nginx.rb in caploy-0.2.5 vs lib/caploy/recipes/nginx.rb in caploy-1.0.0
- old
+ new
@@ -1,109 +1,105 @@
require "caploy/render"
-Capistrano::Configuration.instance.load do
-
- namespace :nginx do
- desc <<-DESC
+namespace :nginx do
+ desc <<-DESC
Starts the nginx web-server.
- DESC
- task :start do
- #run "sudo god start nginx"
- run "sudo /etc/init.d/nginx start"
- end
+ DESC
+ task :start do
+ #run "sudo god start nginx"
+ run "sudo /etc/init.d/nginx start"
+ end
- desc <<-DESC
+ desc <<-DESC
#Stops the nginx web-server.
- DESC
- task :stop do
- #run "sudo god stop nginx"
- run "sudo /etc/init.d/nginx stop"
- end
+ DESC
+ task :stop do
+ #run "sudo god stop nginx"
+ run "sudo /etc/init.d/nginx stop"
+ end
- desc <<-DESC
+ desc <<-DESC
Restarts the nginx web-server.
- DESC
- task :restart do
- #run "sudo god restart nginx"
- run "sudo /etc/init.d/nginx restart"
- end
+ DESC
+ task :restart do
+ #run "sudo god restart nginx"
+ run "sudo /etc/init.d/nginx restart"
+ end
- task :setup, :roles => :web do
- protocol = fetch(:nginx_protocol, nil).to_s
- template_path = File.expand_path('../../templates/nginx/vhost.erb', __FILE__)
- vars = {
- 'application' => application,
- 'project_root' => deploy_to + '/current',
- 'domain' => vhost_domain, 'stage' => stage,
- 'auth_basic_title' => fetch(:auth_basic_title, nil),
- 'auth_basic_password_file' => fetch(:auth_basic_password_file, nil),
- 'protocol' => 'http',
- 'nginx_cert_dir' => fetch(:nginx_cert_dir, '/etc/nginx/cert'),
- 'with_upstream_server' => true,
- 'with_file_expire_max' => fetch(:with_file_expire_max, true),
- 'optional_http_content' => fetch(:optional_nginx_server_http_content, ''),
- 'optional_https_content' => fetch(:optional_nginx_server_https_content, ''),
- 'optional_nginx_http_content' => fetch(:optional_nginx_http_content, ''),
- 'optional_nginx_https_content' => fetch(:optional_nginx_https_content, ''),
- 'cert_type' => fetch(:cert_type, 'pem'),
- 'key_type' => fetch(:cert_type, 'key'),
- 'serve_static_files' => fetch(:nginx_serve_static_files, true),
- 'new_relic_support' => fetch(:nginx_new_relic_support, false)
- }
+ task :setup, :roles => :web do
+ protocol = fetch(:nginx_protocol, nil).to_s
+ template_path = File.expand_path('../../templates/nginx/vhost.erb', __FILE__)
+ vars = {
+ 'application' => application,
+ 'project_root' => deploy_to + '/current',
+ 'domain' => vhost_domain, 'stage' => stage,
+ 'auth_basic_title' => fetch(:auth_basic_title, nil),
+ 'auth_basic_password_file' => fetch(:auth_basic_password_file, nil),
+ 'protocol' => 'http',
+ 'nginx_cert_dir' => fetch(:nginx_cert_dir, '/etc/nginx/cert'),
+ 'with_upstream_server' => true,
+ 'with_file_expire_max' => fetch(:with_file_expire_max, true),
+ 'optional_http_content' => fetch(:optional_nginx_server_http_content, ''),
+ 'optional_https_content' => fetch(:optional_nginx_server_https_content, ''),
+ 'optional_nginx_http_content' => fetch(:optional_nginx_http_content, ''),
+ 'optional_nginx_https_content' => fetch(:optional_nginx_https_content, ''),
+ 'cert_type' => fetch(:cert_type, 'pem'),
+ 'key_type' => fetch(:cert_type, 'key'),
+ 'serve_static_files' => fetch(:nginx_serve_static_files, true),
+ 'new_relic_support' => fetch(:nginx_new_relic_support, false)
+ }
- sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
+ sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
- if protocol.nil? or protocol == 'http' or protocol == 'both'
- config_path = "#{shared_path}/config/#{application}_vhost.conf"
+ if protocol.nil? or protocol == 'http' or protocol == 'both'
+ config_path = "#{shared_path}/config/#{application}_vhost.conf"
- put(render_erb_template(template_path, vars), config_path)
+ put(render_erb_template(template_path, vars), config_path)
- with_user(fetch(:setup_user, user)) do
- try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
- try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}.conf"
- end
+ with_user(fetch(:setup_user, user)) do
+ try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
+ try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}.conf"
end
- if protocol == 'https' or protocol == 'both'
- vars.merge!({'protocol' => 'https'})
+ end
+ if protocol == 'https' or protocol == 'both'
+ vars.merge!({ 'protocol' => 'https' })
- config_path = "#{shared_path}/config/#{application}_ssl_vhost.conf"
+ config_path = "#{shared_path}/config/#{application}_ssl_vhost.conf"
- put(render_erb_template(template_path, vars), config_path)
+ put(render_erb_template(template_path, vars), config_path)
- with_user(fetch(:setup_user, user)) do
- try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
- try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}_ssl.conf"
- end
+ with_user(fetch(:setup_user, user)) do
+ try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
+ try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}_ssl.conf"
end
end
+ end
- task :uninstall do
- protocol = fetch(:nginx_protocol, nil)
- sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
+ task :uninstall do
+ protocol = fetch(:nginx_protocol, nil)
+ sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
- with_user(fetch(:setup_user, user)) do
- if protocol.blank? or protocol == 'http' or protocol == 'both'
- try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
- elsif protocol == 'https' or protocol == 'both'
- try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
- end
+ with_user(fetch(:setup_user, user)) do
+ if protocol.blank? or protocol == 'http' or protocol == 'both'
+ try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
+ elsif protocol == 'https' or protocol == 'both'
+ try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
end
end
end
+end
- after :"deploy:setup", :"nginx:setup";
+after :"deploy:setup", :"nginx:setup";
- def with_user(new_user, &block)
- old_user = user
- set :user, new_user
- close_sessions
- yield
- set :user, old_user
- close_sessions
- end
+def with_user(new_user, &block)
+ old_user = user
+ set :user, new_user
+ close_sessions
+ yield
+ set :user, old_user
+ close_sessions
+end
- def close_sessions
- sessions.values.each { |session| session.close }
- sessions.clear
- end
-
+def close_sessions
+ sessions.values.each { |session| session.close }
+ sessions.clear
end