caploy 0.2.5 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,109 +1,105 @@
1
1
  require "caploy/render"
2
2
 
3
- Capistrano::Configuration.instance.load do
4
-
5
- namespace :nginx do
6
- desc <<-DESC
3
+ namespace :nginx do
4
+ desc <<-DESC
7
5
  Starts the nginx web-server.
8
- DESC
9
- task :start do
10
- #run "sudo god start nginx"
11
- run "sudo /etc/init.d/nginx start"
12
- end
6
+ DESC
7
+ task :start do
8
+ #run "sudo god start nginx"
9
+ run "sudo /etc/init.d/nginx start"
10
+ end
13
11
 
14
- desc <<-DESC
12
+ desc <<-DESC
15
13
  #Stops the nginx web-server.
16
- DESC
17
- task :stop do
18
- #run "sudo god stop nginx"
19
- run "sudo /etc/init.d/nginx stop"
20
- end
14
+ DESC
15
+ task :stop do
16
+ #run "sudo god stop nginx"
17
+ run "sudo /etc/init.d/nginx stop"
18
+ end
21
19
 
22
- desc <<-DESC
20
+ desc <<-DESC
23
21
  Restarts the nginx web-server.
24
- DESC
25
- task :restart do
26
- #run "sudo god restart nginx"
27
- run "sudo /etc/init.d/nginx restart"
28
- end
29
-
30
- task :setup, :roles => :web do
31
- protocol = fetch(:nginx_protocol, nil).to_s
32
- template_path = File.expand_path('../../templates/nginx/vhost.erb', __FILE__)
33
- vars = {
34
- 'application' => application,
35
- 'project_root' => deploy_to + '/current',
36
- 'domain' => vhost_domain, 'stage' => stage,
37
- 'auth_basic_title' => fetch(:auth_basic_title, nil),
38
- 'auth_basic_password_file' => fetch(:auth_basic_password_file, nil),
39
- 'protocol' => 'http',
40
- 'nginx_cert_dir' => fetch(:nginx_cert_dir, '/etc/nginx/cert'),
41
- 'with_upstream_server' => true,
42
- 'with_file_expire_max' => fetch(:with_file_expire_max, true),
43
- 'optional_http_content' => fetch(:optional_nginx_server_http_content, ''),
44
- 'optional_https_content' => fetch(:optional_nginx_server_https_content, ''),
45
- 'optional_nginx_http_content' => fetch(:optional_nginx_http_content, ''),
46
- 'optional_nginx_https_content' => fetch(:optional_nginx_https_content, ''),
47
- 'cert_type' => fetch(:cert_type, 'pem'),
48
- 'key_type' => fetch(:cert_type, 'key'),
49
- 'serve_static_files' => fetch(:nginx_serve_static_files, true),
50
- 'new_relic_support' => fetch(:nginx_new_relic_support, false)
51
- }
52
-
53
- sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
54
-
55
- if protocol.nil? or protocol == 'http' or protocol == 'both'
56
- config_path = "#{shared_path}/config/#{application}_vhost.conf"
57
-
58
- put(render_erb_template(template_path, vars), config_path)
59
-
60
- with_user(fetch(:setup_user, user)) do
61
- try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
62
- try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}.conf"
63
- end
64
- end
65
- if protocol == 'https' or protocol == 'both'
66
- vars.merge!({'protocol' => 'https'})
67
-
68
- config_path = "#{shared_path}/config/#{application}_ssl_vhost.conf"
22
+ DESC
23
+ task :restart do
24
+ #run "sudo god restart nginx"
25
+ run "sudo /etc/init.d/nginx restart"
26
+ end
69
27
 
70
- put(render_erb_template(template_path, vars), config_path)
28
+ task :setup, :roles => :web do
29
+ protocol = fetch(:nginx_protocol, nil).to_s
30
+ template_path = File.expand_path('../../templates/nginx/vhost.erb', __FILE__)
31
+ vars = {
32
+ 'application' => application,
33
+ 'project_root' => deploy_to + '/current',
34
+ 'domain' => vhost_domain, 'stage' => stage,
35
+ 'auth_basic_title' => fetch(:auth_basic_title, nil),
36
+ 'auth_basic_password_file' => fetch(:auth_basic_password_file, nil),
37
+ 'protocol' => 'http',
38
+ 'nginx_cert_dir' => fetch(:nginx_cert_dir, '/etc/nginx/cert'),
39
+ 'with_upstream_server' => true,
40
+ 'with_file_expire_max' => fetch(:with_file_expire_max, true),
41
+ 'optional_http_content' => fetch(:optional_nginx_server_http_content, ''),
42
+ 'optional_https_content' => fetch(:optional_nginx_server_https_content, ''),
43
+ 'optional_nginx_http_content' => fetch(:optional_nginx_http_content, ''),
44
+ 'optional_nginx_https_content' => fetch(:optional_nginx_https_content, ''),
45
+ 'cert_type' => fetch(:cert_type, 'pem'),
46
+ 'key_type' => fetch(:cert_type, 'key'),
47
+ 'serve_static_files' => fetch(:nginx_serve_static_files, true),
48
+ 'new_relic_support' => fetch(:nginx_new_relic_support, false)
49
+ }
50
+
51
+ sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
52
+
53
+ if protocol.nil? or protocol == 'http' or protocol == 'both'
54
+ config_path = "#{shared_path}/config/#{application}_vhost.conf"
55
+
56
+ put(render_erb_template(template_path, vars), config_path)
71
57
 
72
- with_user(fetch(:setup_user, user)) do
73
- try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
74
- try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}_ssl.conf"
75
- end
58
+ with_user(fetch(:setup_user, user)) do
59
+ try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
60
+ try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}.conf"
76
61
  end
77
62
  end
63
+ if protocol == 'https' or protocol == 'both'
64
+ vars.merge!({ 'protocol' => 'https' })
65
+
66
+ config_path = "#{shared_path}/config/#{application}_ssl_vhost.conf"
78
67
 
79
- task :uninstall do
80
- protocol = fetch(:nginx_protocol, nil)
81
- sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
68
+ put(render_erb_template(template_path, vars), config_path)
82
69
 
83
70
  with_user(fetch(:setup_user, user)) do
84
- if protocol.blank? or protocol == 'http' or protocol == 'both'
85
- try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
86
- elsif protocol == 'https' or protocol == 'both'
87
- try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
88
- end
71
+ try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
72
+ try_sudo "ln -s #{config_path} #{sites_path}/#{application}_#{stage}_ssl.conf"
89
73
  end
90
74
  end
91
75
  end
92
76
 
93
- after :"deploy:setup", :"nginx:setup";
77
+ task :uninstall do
78
+ protocol = fetch(:nginx_protocol, nil)
79
+ sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
94
80
 
95
- def with_user(new_user, &block)
96
- old_user = user
97
- set :user, new_user
98
- close_sessions
99
- yield
100
- set :user, old_user
101
- close_sessions
81
+ with_user(fetch(:setup_user, user)) do
82
+ if protocol.blank? or protocol == 'http' or protocol == 'both'
83
+ try_sudo "rm -f #{sites_path}/#{application}_#{stage}.conf"
84
+ elsif protocol == 'https' or protocol == 'both'
85
+ try_sudo "rm -f #{sites_path}/#{application}_#{stage}_ssl.conf"
86
+ end
87
+ end
102
88
  end
89
+ end
103
90
 
104
- def close_sessions
105
- sessions.values.each { |session| session.close }
106
- sessions.clear
107
- end
91
+ after :"deploy:setup", :"nginx:setup";
92
+
93
+ def with_user(new_user, &block)
94
+ old_user = user
95
+ set :user, new_user
96
+ close_sessions
97
+ yield
98
+ set :user, old_user
99
+ close_sessions
100
+ end
108
101
 
102
+ def close_sessions
103
+ sessions.values.each { |session| session.close }
104
+ sessions.clear
109
105
  end
@@ -1,11 +1,10 @@
1
- Capistrano::Configuration.instance.load do
2
-
3
- namespace :deploy do
4
- desc "build missing paperclip styles"
5
- task :build_missing_paperclip_styles, :roles => :app do
6
- run "cd #{release_path}; RAILS_ENV=#{rails_env} #{rake} paperclip:refresh:missing_styles"
1
+ namespace :deploy do
2
+ desc 'build missing paperclip styles'
3
+ task :build_missing_paperclip_styles do
4
+ on roles(:app) do
5
+ execute "cd #{current_path}; RAILS_ENV=production bundle exec rake paperclip:refresh:missing_styles"
7
6
  end
8
7
  end
9
-
10
- #after("deploy:update_code", "deploy:build_missing_paperclip_styles")
11
8
  end
9
+
10
+ after('deploy:compile_assets', 'deploy:build_missing_paperclip_styles')
@@ -1,9 +1,7 @@
1
- Capistrano::Configuration.instance.load do
2
-
3
- namespace :deploy do
4
- task :seed, :roles => :app do
1
+ namespace :deploy do
2
+ task :seed do
3
+ on roles(:app) do
5
4
  run "cd #{current_path} && RAILS_ENV=#{rails_env} #{rake} db:seed"
6
5
  end
7
6
  end
8
-
9
7
  end
@@ -1,48 +1,44 @@
1
- Capistrano::Configuration.instance.load do
2
-
3
- namespace :deploy do
4
- namespace :prepare do
5
- task :create_config_files, :roles => :app do
6
- run "mkdir -p #{shared_path}/config/"
7
- config_file_to_setup.each do |config_file|
8
- local_path = config_file_path(config_file)
9
- put(File.read(local_path), "#{shared_path}/config/#{config_file}", :via => :scp) if local_path
10
- end if defined?(config_file_to_setup)
11
- end
1
+ namespace :deploy do
2
+ namespace :prepare do
3
+ task :create_config_files, :roles => :app do
4
+ run "mkdir -p #{shared_path}/config/"
5
+ config_file_to_setup.each do |config_file|
6
+ local_path = config_file_path(config_file)
7
+ put(File.read(local_path), "#{shared_path}/config/#{config_file}", :via => :scp) if local_path
8
+ end if defined?(config_file_to_setup)
9
+ end
12
10
 
13
- desc "Set up shared directory structure"
14
- task :create_shared_folders, :roles => :app do
15
- directories_to_create.each { |directory| run "mkdir -p #{directory}" } if defined?(directories_to_create)
16
- end
11
+ desc "Set up shared directory structure"
12
+ task :create_shared_folders, :roles => :app do
13
+ directories_to_create.each { |directory| run "mkdir -p #{directory}" } if defined?(directories_to_create)
14
+ end
17
15
 
18
- task :set_permissions, :roles => :app do
19
- try_sudo "chown -R #{user}:#{fetch(:group, user)} #{deploy_to}" if fetch(:use_sudo, false)
20
- end
16
+ task :set_permissions, :roles => :app do
17
+ try_sudo "chown -R #{user}:#{fetch(:group, user)} #{deploy_to}" if fetch(:use_sudo, false)
18
+ end
21
19
 
22
- task :database, :roles => :db do
23
- _cset :db_admin_user, 'root'
24
- _cset :db_admin_password, Capistrano::CLI.password_prompt("\e[0;31mType your mysql password for user '#{db_admin_user}' (not set if empty and ENTER): ")
25
- _cset :db_name, application.gsub(/\W+/, '')[0..5] + '_' + rails_env.to_s
26
- _cset :db_user_name, application
27
- _cset :db_user_password, ''
20
+ task :database, :roles => :db do
21
+ _cset :db_admin_user, 'root'
22
+ _cset :db_admin_password, Capistrano::CLI.password_prompt("\e[0;31mType your mysql password for user '#{db_admin_user}' (not set if empty and ENTER): ")
23
+ _cset :db_name, application.gsub(/\W+/, '')[0..5] + '_' + rails_env.to_s
24
+ _cset :db_user_name, application
25
+ _cset :db_user_password, ''
28
26
 
29
- unless db_admin_password.to_s.empty?
30
- unless database_exits?
31
- create_database
32
- end
33
- setup_database_permissions
27
+ unless db_admin_password.to_s.empty?
28
+ unless database_exits?
29
+ create_database
34
30
  end
31
+ setup_database_permissions
35
32
  end
36
33
  end
37
34
  end
38
-
39
- before 'deploy:setup', 'deploy:prepare:database';
40
- before :'deploy:setup', :'deploy:prepare:create_config_files';
41
- before :'deploy:setup', :'deploy:prepare:create_shared_folders';
42
- after 'deploy:setup', 'deploy:prepare:set_permissions';
43
-
44
35
  end
45
36
 
37
+ before 'deploy:setup', 'deploy:prepare:database';
38
+ before :'deploy:setup', :'deploy:prepare:create_config_files';
39
+ before :'deploy:setup', :'deploy:prepare:create_shared_folders';
40
+ after 'deploy:setup', 'deploy:prepare:set_permissions';
41
+
46
42
  def config_file_path(config_file_name)
47
43
  config_file = "#{rails_root}/config/#{config_file_name}"
48
44
  if File.exists? config_file
@@ -0,0 +1,22 @@
1
+ desc 'Tail application log'
2
+ task :tail_logs do
3
+ on roles (:app) do
4
+ tail "#{shared_path}/log/#{fetch(:rails_env)}.log"
5
+ end
6
+ end
7
+
8
+ def with_verbosity(output_verbosity)
9
+ old_verbosity = SSHKit.config.output_verbosity
10
+ begin
11
+ SSHKit.config.output_verbosity = output_verbosity
12
+ yield
13
+ ensure
14
+ SSHKit.config.output_verbosity = old_verbosity
15
+ end
16
+ end
17
+
18
+ def tail(path)
19
+ with_verbosity(Logger::DEBUG) do
20
+ execute "tail -f #{path}"
21
+ end
22
+ end
@@ -1,136 +1,137 @@
1
- Capistrano::Configuration.instance.load do
2
-
3
- # Check if remote file exists
4
- #
5
- def remote_file_exists?(full_path)
6
- 'true' == capture("if [ -e #{full_path} ]; then echo 'true'; fi").strip
7
- end
8
-
9
- # Check if process is running
10
- #
11
- def process_exists?(pid_file)
12
- capture("ps -p $(cat #{pid_file}) ; true").strip.split("\n").size == 2
13
- end
1
+ # Check if remote file exists
2
+ #
3
+ def remote_file_exists?(full_path)
4
+ 'true' == capture("if [ -e #{full_path} ]; then echo 'true'; fi").strip
5
+ end
14
6
 
15
- # Set unicorn vars
16
- #
17
- _cset (:app_env) { fetch(:rails_env, 'production') }
18
- _cset (:unicorn_bin) { "unicorn" }
19
- _cset (:unicorn_pid) { "#{fetch(:current_path)}/tmp/pids/unicorn.pid" }
20
- _cset (:unicorn_env) { app_env }
21
- _cset (:unicorn_std_log) { "log/unicorn.stderr.log" }
22
- _cset (:unicorn_err_log) { "log/unicorn.stderr.log" }
23
- _cset (:unicorn_worker_processes) { 2 }
24
- _cset (:unicorn_timeout) { 30 }
25
- _cset (:unicorn_listen_backlog) { 2048 }
26
- _cset (:sidekiq_redis_url) { nil }
27
- _cset (:sidekiq_redis_count) { 1 }
28
- _cset (:unicorn_hard_restart) { false }
7
+ # Check if process is running
8
+ #
9
+ def process_exists?(pid_file)
10
+ capture("ps -p $(cat #{pid_file}) ; true").strip.split("\n").size == 2
11
+ end
29
12
 
30
- namespace :unicorn do
31
- desc 'Start Unicorn'
32
- task :start, :roles => :app, :except => {:no_release => true} do
33
- if remote_file_exists?(unicorn_pid)
34
- if process_exists?(unicorn_pid)
35
- logger.important("Unicorn is already running!", "Unicorn")
36
- next
37
- else
38
- run "rm #{unicorn_pid}"
39
- end
40
- end
13
+ # Set unicorn vars
14
+ #
15
+ _cset (:app_env) { fetch(:rails_env, 'production') }
16
+ _cset (:unicorn_bin) { "unicorn" }
17
+ _cset (:unicorn_pid) { "#{fetch(:current_path)}/tmp/pids/unicorn.pid" }
18
+ _cset (:unicorn_env) { app_env }
19
+ _cset (:unicorn_std_log) { "log/unicorn.stderr.log" }
20
+ _cset (:unicorn_err_log) { "log/unicorn.stderr.log" }
21
+ _cset (:unicorn_worker_count) { 2 }
22
+ _cset (:unicorn_timeout) { 30 }
23
+ _cset (:unicorn_listen_backlog) { 2048 }
24
+ _cset (:sidekiq_redis_url) { nil }
25
+ _cset (:sidekiq_redis_count) { 1 }
26
+ _cset (:unicorn_hard_restart) { false }
41
27
 
42
- config_path = "#{current_path}/config/unicorn/#{unicorn_env}.rb"
43
- if remote_file_exists?(config_path)
44
- logger.important("Starting...", "Unicorn - #{bundle_cmd} ")
45
- run "cd #{current_path} && #{bundle_cmd} exec #{unicorn_bin} -c #{config_path} -E #{app_env} -D"
28
+ namespace :unicorn do
29
+ desc 'Start Unicorn'
30
+ task :start, :roles => :app, :except => { :no_release => true } do
31
+ if remote_file_exists?(unicorn_pid)
32
+ if process_exists?(unicorn_pid)
33
+ logger.important("Unicorn is already running!", "Unicorn")
34
+ next
46
35
  else
47
- logger.important("Config file for \"#{unicorn_env}\" environment was not found at \"#{config_path}\"", "Unicorn")
36
+ run "rm #{unicorn_pid}"
48
37
  end
49
38
  end
50
39
 
51
- desc 'Stop Unicorn'
52
- task :stop, :roles => :app, :except => {:no_release => true} do
53
- if remote_file_exists?(unicorn_pid)
54
- if process_exists?(unicorn_pid)
55
- logger.important("Stopping...", "Unicorn")
56
- run "#{try_sudo} kill `cat #{unicorn_pid}`"
57
- else
58
- run "rm #{unicorn_pid}"
59
- logger.important("Unicorn is not running.", "Unicorn")
60
- end
61
- else
62
- logger.important("No PIDs found. Check if unicorn is running.", "Unicorn")
63
- end
40
+ config_path = "#{current_path}/config/unicorn/#{unicorn_env}.rb"
41
+ if remote_file_exists?(config_path)
42
+ logger.important("Starting...", "Unicorn - #{bundle_cmd} ")
43
+ run "cd #{current_path} && #{bundle_cmd} exec #{unicorn_bin} -c #{config_path} -E #{app_env} -D"
44
+ else
45
+ logger.important("Config file for \"#{unicorn_env}\" environment was not found at \"#{config_path}\"", "Unicorn")
64
46
  end
47
+ end
65
48
 
66
- desc 'Unicorn graceful shutdown'
67
- task :graceful_stop, :roles => :app, :except => {:no_release => true} do
68
- if remote_file_exists?(unicorn_pid)
69
- if process_exists?(unicorn_pid)
70
- logger.important("Stopping...", "Unicorn")
71
- run "#{try_sudo} kill -s QUIT `cat #{unicorn_pid}`"
72
- else
73
- run "rm #{unicorn_pid}"
74
- logger.important("Unicorn is not running.", "Unicorn")
75
- end
49
+ desc 'Stop Unicorn'
50
+ task :stop, :roles => :app, :except => { :no_release => true } do
51
+ if remote_file_exists?(unicorn_pid)
52
+ if process_exists?(unicorn_pid)
53
+ logger.important("Stopping...", "Unicorn")
54
+ run "#{try_sudo} kill `cat #{unicorn_pid}`"
76
55
  else
77
- logger.important("No PIDs found. Check if unicorn is running.", "Unicorn")
56
+ run "rm #{unicorn_pid}"
57
+ logger.important("Unicorn is not running.", "Unicorn")
78
58
  end
59
+ else
60
+ logger.important("No PIDs found. Check if unicorn is running.", "Unicorn")
79
61
  end
62
+ end
80
63
 
81
- desc 'Reload Unicorn'
82
- task :reload, :roles => :app, :except => {:no_release => true} do
83
- if remote_file_exists?(unicorn_pid)
64
+ desc 'Unicorn graceful shutdown'
65
+ task :graceful_stop, :roles => :app, :except => { :no_release => true } do
66
+ if remote_file_exists?(unicorn_pid)
67
+ if process_exists?(unicorn_pid)
84
68
  logger.important("Stopping...", "Unicorn")
85
- if unicorn_hard_restart
86
- unicorn.stop
87
- sleep(2)
88
- unicorn.start
89
- else
90
- run "#{try_sudo} kill -s USR2 `cat #{unicorn_pid}`"
91
- end
69
+ run "#{try_sudo} kill -s QUIT `cat #{unicorn_pid}`"
92
70
  else
93
- logger.important("No PIDs found. Starting Unicorn server...", "Unicorn")
94
- config_path = "#{current_path}/config/unicorn/#{unicorn_env}.rb"
95
- if remote_file_exists?(config_path)
96
- run "cd #{current_path} && #{bundle_cmd} exec #{unicorn_bin} -c #{config_path} -E #{app_env} -D"
97
- else
98
- logger.important("Config file for \"#{unicorn_env}\" environment was not found at \"#{config_path}\"", "Unicorn")
99
- end
71
+ run "rm #{unicorn_pid}"
72
+ logger.important("Unicorn is not running.", "Unicorn")
100
73
  end
74
+ else
75
+ logger.important("No PIDs found. Check if unicorn is running.", "Unicorn")
101
76
  end
77
+ end
102
78
 
103
- desc "Setup unicorn"
104
- task :setup, :roles => :app, :except => {:no_release => true} do
105
- run "mkdir -p \"#{shared_path}/config/unicorn\""
106
- config_path = "#{shared_path}/config/unicorn/#{rails_env}.rb"
107
- template_path = File.expand_path('../../templates/unicorn/unicorn.rb.erb', __FILE__)
108
- vars = {
109
- 'application' => application,
110
- 'current_path' => current_path,
111
- 'unicorn_pid' => unicorn_pid,
112
- 'unicorn_std_log' => unicorn_std_log,
113
- 'unicorn_err_log' => unicorn_err_log,
114
- 'stage' => stage,
115
- 'unicorn_listen_backlog' => unicorn_listen_backlog,
116
- 'unicorn_worker_processes' => unicorn_worker_processes,
117
- 'unicorn_timeout' => unicorn_timeout,
118
- 'sidekiq_redis_count' => sidekiq_redis_count,
119
- 'sidekiq_redis_url' => sidekiq_redis_url
120
- }
121
- put(render_erb_template(template_path, vars), config_path)
79
+ desc 'Reload Unicorn'
80
+ task :reload, :roles => :app, :except => { :no_release => true } do
81
+ if remote_file_exists?(unicorn_pid)
82
+ logger.important("Stopping...", "Unicorn")
83
+ if unicorn_hard_restart
84
+ unicorn.stop
85
+ sleep(2)
86
+ unicorn.start
87
+ else
88
+ run "#{try_sudo} kill -s USR2 `cat #{unicorn_pid}`"
89
+ end
90
+ else
91
+ logger.important("No PIDs found. Starting Unicorn server...", "Unicorn")
92
+ config_path = "#{current_path}/config/unicorn/#{unicorn_env}.rb"
93
+ if remote_file_exists?(config_path)
94
+ run "cd #{current_path} && #{bundle_cmd} exec #{unicorn_bin} -c #{config_path} -E #{app_env} -D"
95
+ else
96
+ logger.important("Config file for \"#{unicorn_env}\" environment was not found at \"#{config_path}\"", "Unicorn")
97
+ end
122
98
  end
123
99
  end
124
100
 
125
- after :"deploy:restart", :"unicorn:reload"
126
- after :"deploy:setup", :"unicorn:setup";
101
+ desc "Setup unicorn"
102
+ task :setup, :roles => :app, :except => { :no_release => true } do
103
+ run "mkdir -p \"#{shared_path}/config/unicorn\""
104
+ config_path = "#{shared_path}/config/unicorn/#{rails_env}.rb"
105
+ template_path = File.expand_path('../../templates/unicorn/unicorn.rb.erb', __FILE__)
106
+ vars = {
107
+ 'application' => application,
108
+ 'current_path' => current_path,
109
+ 'unicorn_pid' => unicorn_pid,
110
+ 'unicorn_std_log' => unicorn_std_log,
111
+ 'unicorn_err_log' => unicorn_err_log,
112
+ 'stage' => stage,
113
+ 'unicorn_listen_backlog' => unicorn_listen_backlog,
114
+ 'unicorn_worker_count' => unicorn_worker_count,
115
+ 'unicorn_timeout' => unicorn_timeout,
116
+ 'sidekiq_redis_count' => sidekiq_redis_count,
117
+ 'sidekiq_redis_url' => sidekiq_redis_url
118
+ }
119
+ put(render_erb_template(template_path, vars), config_path)
120
+ end
121
+ end
122
+
123
+ after :"deploy:restart", :"unicorn:reload"
124
+ after :"deploy:setup", :"unicorn:setup";
127
125
 
128
- namespace :deploy do
129
- task :start, :roles => :app do
126
+ namespace :deploy do
127
+ task :start do
128
+ on roles(:app) do
130
129
  unicorn.start
131
130
  end
131
+ end
132
132
 
133
- task :stop, :roles => :app do
133
+ task :stop do
134
+ on roles(:app) do
134
135
  unicorn.stop
135
136
  end
136
137
  end
@@ -4,7 +4,7 @@ stderr_path "<%= unicorn_std_log %>"
4
4
  stdout_path "<%= unicorn_err_log %>"
5
5
 
6
6
  listen "/tmp/socket.<%= application %>_<%= stage %>.sock", :backlog => <%= unicorn_listen_backlog %>
7
- worker_processes <%= unicorn_worker_processes %>
7
+ worker_processes <%= unicorn_worker_count %>
8
8
  timeout <%= unicorn_timeout %>
9
9
 
10
10
  preload_app true
@@ -45,4 +45,4 @@ after_fork do |server, worker|
45
45
  <% end %>
46
46
  end
47
47
  end
48
- end
48
+ end
@@ -1,3 +1,3 @@
1
1
  module Caploy
2
- VERSION = "0.2.5"
2
+ VERSION = "1.0.0"
3
3
  end
data/lib/caploy.rb CHANGED
@@ -1 +1,16 @@
1
- require "caploy/version"
1
+ require 'caploy/version'
2
+
3
+ module Caploy
4
+ require 'caploy/railtie' if defined?(Rails)
5
+
6
+ # Load DSL and Setup Up Stages
7
+ require 'capistrano/setup'
8
+
9
+ # Includes default deployment tasks
10
+ require 'capistrano/deploy'
11
+
12
+ # Includes tasks from other gems included in your Gemfile
13
+ require 'capistrano/rails'
14
+ require 'capistrano/rbenv'
15
+ require 'capistrano3/unicorn'
16
+ end