capistrano-nginx-unicorn 0.0.8 → 0.1.0.pre

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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NzNmNWY5ZGViYmU4NGEyYjFiODQ0NTM1NjdmN2JhMWRkZGQ3MGQ4MA==
5
- data.tar.gz: !binary |-
6
- ZWRmOGM1OTRjZTlhYTA2ZjFkNmViMmUwZjZjYmFkOWYxMWMyOWJkZA==
2
+ SHA1:
3
+ metadata.gz: 59fd37b04eff080056157c4c3664c58721c4e397
4
+ data.tar.gz: bd445ae9e88bdb9b9fe1ccc8a21e8030674593fe
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MDRjODUzOTcyYzM4MjBjNjVhMDA5ZThlMjYyNWM0ZTViMWQzYTg0ZTgxZGE4
10
- ZWI4NTg4N2E2MGMxNWQ1MjAyN2I5NjYyZTUyZjgwZDg4MjQxM2VlZGQ3Yjc2
11
- YTM3YjNlNjUxMmExMzZiYzUwZTZhNTViMjc1YWE0YjgxYWY4NzE=
12
- data.tar.gz: !binary |-
13
- MmQ3MTM4NzhkMmEwZmM5NjZlNWExYzhlMzRkNWQ2ZmMyM2M0MmNjZWI2YjA3
14
- NzM4ZWQ1NWFmOTJjMzFlZTg5ZWQyMDIyN2IxZDFhMTM5MjEwNjM5YTRlY2Mz
15
- ZWVlOWJhMWY3Y2M3ZjJmNjFhMTZlYTJiNTdhZTU3OGRhYTRkNDc=
6
+ metadata.gz: 6ecaf78c0a4a7bf9a1ddb6d9cf457222528686b532271c1029b80ad49c37b37699581db41f9515e53732f80295358677ca465aa72f92c5eac764a6c6a3d03a7e
7
+ data.tar.gz: a9a6196efe630e26f489ad56bb803f4552e3fe9bf5b942b492c8537b2e2ea934e2f0e60a3d2f2e90eb103ac029d7479aa8e6665fab5eb6b9d73439910ba7a34a
@@ -0,0 +1,8 @@
1
+ ### From 0.0.8 to 0.1.0
2
+
3
+ * Separate nginx and unicorn tasks into the appropriate files.
4
+ * Encapsulate default settings in namespace.
5
+ * Rename nginx config file so it has .conf extension.
6
+ * Remove nginx server name prompt.
7
+ * Add nginx_unicorn:setup task.
8
+ * Add several options of starting unicorn (rvm, rbenv).
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_dependency 'capistrano', '~> 2.0'
20
+ gem.add_dependency 'capistrano', '~> 3.0'
21
21
 
22
22
  gem.add_development_dependency "rake"
23
23
  end
@@ -1,2 +0,0 @@
1
- require "capistrano/nginx_unicorn/version"
2
- require "capistrano/nginx_unicorn/tasks"
@@ -0,0 +1,9 @@
1
+ load File.expand_path("../tasks/nginx.rake", __FILE__)
2
+ load File.expand_path("../tasks/unicorn.rake", __FILE__)
3
+ load File.expand_path("../tasks/logrotate.rake", __FILE__)
4
+
5
+ namespace :load do
6
+ task :defaults do
7
+ load 'capistrano/nginx_unicorn/defaults.rb'
8
+ end
9
+ end
@@ -0,0 +1,20 @@
1
+ set :templates_path, "config/deploy/templates"
2
+ set :nginx_server_name, -> { "localhost #{fetch(:application)}.local" }
3
+ set :nginx_config_name, -> { "#{fetch(:application)}_#{fetch(:stage)}" }
4
+ set :nginx_use_ssl, false
5
+ set :nginx_pid, "/run/nginx.pid"
6
+ set :nginx_ssl_certificate, -> { "#{fetch(:nginx_server_name)}.crt" }
7
+ set :nginx_ssl_certificate_key, -> { "#{fetch(:nginx_server_name)}.key" }
8
+ set :nginx_upload_local_certificate, true
9
+ set :nginx_ssl_certificate_local_path, -> { ask(:nginx_ssl_certificate_local_path, "Local path to ssl certificate: ") }
10
+ set :nginx_ssl_certificate_key_local_path, -> { ask(:nginx_ssl_certificate_key_local_path, "Local path to ssl certificate key: ") }
11
+ set :nginx_config_path, "/etc/nginx/sites-available"
12
+
13
+ set :unicorn_service_name, -> { "unicorn_#{fetch(:application)}_#{fetch(:stage)}" }
14
+ set :templates_path, "config/deploy/templates"
15
+ set :unicorn_pid, -> { shared_path.join("pids/unicorn.pid") }
16
+ set :unicorn_config, -> { shared_path.join("config/unicorn.rb") }
17
+ set :unicorn_log, -> { shared_path.join("log/unicorn.log") }
18
+ set :unicorn_user, -> { fetch(:user) }
19
+ set :unicorn_workers, 2
20
+ set :sudo, "sudo"
@@ -0,0 +1,18 @@
1
+ require 'erb'
2
+
3
+ module Capistrano
4
+ module NginxUnicorn
5
+ module Helpers
6
+
7
+ def template(template_name, target)
8
+ config_file = "#{fetch(:templates_path)}/#{template_name}"
9
+ # if no customized file, proceed with default
10
+ unless File.exists?(config_file)
11
+ config_file = File.join(File.dirname(__FILE__), "../../generators/capistrano/nginx_unicorn/templates/#{template_name}")
12
+ end
13
+ config_stream = StringIO.new(ERB.new(File.read(config_file)).result(binding))
14
+ upload! config_stream, target
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module NginxUnicorn
3
- VERSION = "0.0.8"
3
+ VERSION = "0.1.0.pre"
4
4
  end
5
5
  end
@@ -0,0 +1,12 @@
1
+ namespace :logrotate do
2
+ desc "Setup logs rotation for nginx and unicorn"
3
+ task :setup do
4
+ on roles(:web, :app) do
5
+ logrotate_config = "#{fetch(:application)}_#{fetch(:stage)}"
6
+
7
+ template("logrotate.erb", "/tmp/#{logrotate_config}_logrotate")
8
+ sudo :mv, "/tmp/#{logrotate_config}_logrotate /etc/logrotate.d/#{logrotate_config}"
9
+ sudo :chown, "root:root", "/etc/logrotate.d/#{logrotate_config}"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,48 @@
1
+ require 'capistrano/nginx_unicorn/helpers'
2
+
3
+ include Capistrano::NginxUnicorn::Helpers
4
+
5
+ namespace :nginx do
6
+ desc "Setup nginx configuration"
7
+ task :setup do
8
+ on roles(:web) do
9
+ execute :mkdir, "-p", shared_path.join("log")
10
+ template("nginx_conf.erb", "/tmp/nginx_#{fetch(:nginx_config_name)}")
11
+ if fetch(:nginx_config_path) == "/etc/nginx/sites-available"
12
+ sudo :mv, "/tmp/nginx_#{fetch(:nginx_config_name)} /etc/nginx/sites-available/#{fetch(:nginx_config_name)}"
13
+ sudo :ln, "-fs", "/etc/nginx/sites-available/#{fetch(:nginx_config_name)} /etc/nginx/sites-enabled/#{fetch(:nginx_config_name)}"
14
+ else
15
+ sudo :mv, "/tmp/#{fetch(:nginx_config_name)} #{fetch(:nginx_config_path)}/#{fetch(:nginx_config_name)}"
16
+ end
17
+ end
18
+ end
19
+
20
+ desc "Setup nginx ssl certs"
21
+ task :setup_ssl do
22
+ on roles(:web) do
23
+ if fetch(:nginx_use_ssl)
24
+ if fetch(:nginx_upload_local_certificate)
25
+ upload! fetch(:nginx_ssl_certificate_local_path), "/tmp/#{fetch(:nginx_ssl_certificate)}"
26
+ upload! fetch(:nginx_ssl_certificate_key_local_path), "/tmp/#{fetch(:nginx_ssl_certificate_key)}"
27
+
28
+ sudo :mv, "/tmp/#{fetch(:nginx_ssl_certificate)} /etc/ssl/certs/#{fetch(:nginx_ssl_certificate)}"
29
+ sudo :mv, "/tmp/#{fetch(:nginx_ssl_certificate_key)} /etc/ssl/private/#{fetch(:nginx_ssl_certificate_key)}"
30
+ end
31
+
32
+ sudo :chown, "root:root /etc/ssl/certs/#{fetch(:nginx_ssl_certificate)}"
33
+ sudo :chown, "root:root /etc/ssl/private/#{fetch(:nginx_ssl_certificate_key)}"
34
+ end
35
+ end
36
+ end
37
+
38
+ desc "Reload nginx configuration"
39
+ task :reload do
40
+ on roles(:web) do
41
+ sudo "/etc/init.d/nginx reload"
42
+ end
43
+ end
44
+ end
45
+
46
+ namespace :deploy do
47
+ after :publishing, "nginx:reload"
48
+ end
@@ -0,0 +1,38 @@
1
+ require 'capistrano/nginx_unicorn/helpers'
2
+
3
+ include Capistrano::NginxUnicorn::Helpers
4
+
5
+ namespace :unicorn do
6
+ desc "Setup Unicorn initializer"
7
+ task :setup_initializer do
8
+ on roles(:app) do
9
+ template "unicorn_init.erb", "/tmp/unicorn_init"
10
+ execute :chmod, "+x", "/tmp/unicorn_init"
11
+ sudo :mv, "/tmp/unicorn_init /etc/init.d/#{fetch(:unicorn_service_name)}"
12
+ sudo "update-rc.d -f #{fetch(:unicorn_service_name)} defaults"
13
+ end
14
+ end
15
+
16
+ desc "Setup Unicorn app configuration"
17
+ task :setup_app_config do
18
+ on roles(:app) do
19
+ execute :mkdir, "-p", shared_path.join("config")
20
+ execute :mkdir, "-p", shared_path.join("log")
21
+ execute :mkdir, "-p", shared_path.join("pids")
22
+ template "unicorn.rb.erb", fetch(:unicorn_config)
23
+ end
24
+ end
25
+
26
+ %w[start stop restart].each do |command|
27
+ desc "#{command} unicorn"
28
+ task command do
29
+ on roles(:app) do
30
+ sudo "service #{fetch(:unicorn_service_name)} #{command}"
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ namespace :deploy do
37
+ after :publishing, "unicorn:restart"
38
+ end
@@ -7,7 +7,7 @@
7
7
  delaycompress
8
8
 
9
9
  lastaction
10
- pid=<%= unicorn_pid %>
10
+ pid=<%= fetch(:unicorn_pid) %>
11
11
  test -s $pid && kill -USR1 "$(cat $pid)"
12
12
  endscript
13
13
 
@@ -18,7 +18,7 @@
18
18
  endscript
19
19
 
20
20
  postrotate
21
- nginx_pid=<%= nginx_pid %>
21
+ nginx_pid=<%= fetch(:nginx_pid) %>
22
22
  [ ! -f $nginx_pid ] || kill -USR1 `cat $nginx_pid`
23
23
  endscript
24
24
  }
@@ -1,8 +1,8 @@
1
- upstream unicorn_<%= application %> {
2
- server unix:/tmp/unicorn.<%= application %>.sock fail_timeout=0;
1
+ upstream unicorn_<%= fetch(:nginx_config_name) %> {
2
+ server unix:/tmp/unicorn.<%= fetch(:nginx_config_name) %>.sock fail_timeout=0;
3
3
  }
4
4
 
5
- <% if nginx_use_ssl %>
5
+ <% if fetch(:nginx_use_ssl) %>
6
6
  server {
7
7
  listen 80;
8
8
  rewrite ^(.*) https://$host$1 permanent;
@@ -10,11 +10,11 @@ server {
10
10
  <% end %>
11
11
 
12
12
  server {
13
- <% if nginx_use_ssl %>
13
+ <% if fetch(:nginx_use_ssl) %>
14
14
  listen 443;
15
15
  ssl on;
16
- ssl_certificate /etc/ssl/certs/<%= nginx_ssl_certificate %>;
17
- ssl_certificate_key /etc/ssl/private/<%= nginx_ssl_certificate_key %>;
16
+ ssl_certificate /etc/ssl/certs/<%= fetch(:nginx_ssl_certificate) %>;
17
+ ssl_certificate_key /etc/ssl/private/<%= fetch(:nginx_ssl_certificate_key) %>;
18
18
  <% else %>
19
19
  listen 80;
20
20
  <% end %>
@@ -25,18 +25,18 @@ server {
25
25
  error_page 500 502 504 /500.html;
26
26
  error_page 503 @503;
27
27
 
28
- server_name <%= nginx_server_name %>;
28
+ server_name <%= fetch(:nginx_server_name) %>;
29
29
  root <%= current_path %>/public;
30
- try_files $uri/index.html $uri @unicorn_<%= application %>;
30
+ try_files $uri/index.html $uri @unicorn_<%= fetch(:nginx_config_name) %>;
31
31
 
32
- location @unicorn_<%= application %> {
32
+ location @unicorn_<%= fetch(:nginx_config_name) %> {
33
33
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
34
34
  proxy_set_header Host $http_host;
35
35
  proxy_redirect off;
36
- <% if nginx_use_ssl %>
36
+ <% if fetch(:nginx_use_ssl) %>
37
37
  proxy_set_header X-Forwarded-Proto https;
38
38
  <% end %>
39
- proxy_pass http://unicorn_<%= application %>;
39
+ proxy_pass http://unicorn_<%= fetch(:nginx_config_name) %>;
40
40
  # limit_req zone=one;
41
41
  access_log <%= shared_path %>/log/nginx.access.log;
42
42
  error_log <%= shared_path %>/log/nginx.error.log;
@@ -1,10 +1,10 @@
1
1
  working_directory "<%= current_path %>"
2
- pid "<%= unicorn_pid %>"
3
- stderr_path "<%= unicorn_log %>"
4
- stdout_path "<%= unicorn_log %>"
2
+ pid "<%= fetch(:unicorn_pid) %>"
3
+ stderr_path "<%= fetch(:unicorn_log) %>"
4
+ stdout_path "<%= fetch(:unicorn_log) %>"
5
5
 
6
- listen "/tmp/unicorn.<%= application %>.sock"
7
- worker_processes <%= unicorn_workers %>
6
+ listen "/tmp/unicorn.<%= fetch(:nginx_config_name) %>.sock"
7
+ worker_processes <%= fetch(:unicorn_workers) %>
8
8
  timeout 30
9
9
 
10
10
  preload_app true
@@ -1,4 +1,4 @@
1
- #!/bin/sh
1
+ #!/bin/bash
2
2
  ### BEGIN INIT INFO
3
3
  # Provides: unicorn
4
4
  # Required-Start: $remote_fs $syslog
@@ -13,11 +13,18 @@ set -e
13
13
  # Feel free to change any of the following variables for your app:
14
14
  TIMEOUT=${TIMEOUT-60}
15
15
  APP_ROOT=<%= current_path %>
16
- PID=<%= unicorn_pid %>
16
+ PID=<%= fetch(:unicorn_pid) %>
17
17
 
18
- CMD="cd <%= current_path %>; bundle exec unicorn -D -c <%= unicorn_config %> -E production"
18
+ # no rvm and no rbenv
19
+ CMD="cd $APP_ROOT; bundle exec unicorn -D -c <%= fetch(:unicorn_config) %> -E <%= fetch(:rails_env) %>"
19
20
 
20
- AS_USER=<%= unicorn_user %>
21
+ # rvm
22
+ #CMD="cd <%= current_path %>; <%= fetch(:rvm_path) %>/bin/rvm do bundle exec unicorn -D -c <%= fetch(:unicorn_config) %> -E <%= fetch(:rails_env) %>"
23
+
24
+ # rbenv TODO
25
+ # doesn't work CMD="cd <%= current_path %>; bundle exec unicorn -D -c <%= fetch(:unicorn_config) %> -E <%= fetch(:rails_env) %>"
26
+
27
+ AS_USER=<%= fetch(:unicorn_user) %>
21
28
  set -u
22
29
 
23
30
  OLD_PIN="$PID.oldbin"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-nginx-unicorn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.1.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Tkalin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-13 00:00:00.000000000 Z
12
+ date: 2014-03-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
@@ -17,26 +17,26 @@ dependencies:
17
17
  requirements:
18
18
  - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: '2.0'
20
+ version: '3.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ~>
26
26
  - !ruby/object:Gem::Version
27
- version: '2.0'
27
+ version: '3.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ! '>='
32
+ - - '>='
33
33
  - !ruby/object:Gem::Version
34
34
  version: '0'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ! '>='
39
+ - - '>='
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  description: Capistrano tasks for configuration and management nginx+unicorn combo
@@ -49,14 +49,20 @@ extensions: []
49
49
  extra_rdoc_files: []
50
50
  files:
51
51
  - .gitignore
52
+ - CHANGELOG.md
52
53
  - Gemfile
53
54
  - LICENSE.txt
54
55
  - README.md
55
56
  - Rakefile
56
57
  - capistrano-nginx-unicorn.gemspec
57
58
  - lib/capistrano-nginx-unicorn.rb
58
- - lib/capistrano/nginx_unicorn/tasks.rb
59
+ - lib/capistrano/nginx_unicorn.rb
60
+ - lib/capistrano/nginx_unicorn/defaults.rb
61
+ - lib/capistrano/nginx_unicorn/helpers.rb
59
62
  - lib/capistrano/nginx_unicorn/version.rb
63
+ - lib/capistrano/tasks/logrotate.rake
64
+ - lib/capistrano/tasks/nginx.rake
65
+ - lib/capistrano/tasks/unicorn.rake
60
66
  - lib/generators/capistrano/nginx_unicorn/USAGE
61
67
  - lib/generators/capistrano/nginx_unicorn/config_generator.rb
62
68
  - lib/generators/capistrano/nginx_unicorn/templates/logrotate.erb
@@ -72,14 +78,14 @@ require_paths:
72
78
  - lib
73
79
  required_ruby_version: !ruby/object:Gem::Requirement
74
80
  requirements:
75
- - - ! '>='
81
+ - - '>='
76
82
  - !ruby/object:Gem::Version
77
83
  version: '0'
78
84
  required_rubygems_version: !ruby/object:Gem::Requirement
79
85
  requirements:
80
- - - ! '>='
86
+ - - '>'
81
87
  - !ruby/object:Gem::Version
82
- version: '0'
88
+ version: 1.3.1
83
89
  requirements: []
84
90
  rubyforge_project:
85
91
  rubygems_version: 2.1.11
@@ -1,102 +0,0 @@
1
- require 'capistrano'
2
-
3
- Capistrano::Configuration.instance.load do
4
- def set_default(name, *args, &block)
5
- set(name, *args, &block) unless exists?(name)
6
- end
7
-
8
- set_default(:templates_path, "config/deploy/templates")
9
-
10
- set_default(:nginx_server_name) { Capistrano::CLI.ui.ask "Nginx server name: " }
11
- set_default(:nginx_use_ssl, false)
12
- set_default(:nginx_pid) { "/run/nginx.pid" }
13
- set_default(:nginx_ssl_certificate) { "#{nginx_server_name}.crt" }
14
- set_default(:nginx_ssl_certificate_key) { "#{nginx_server_name}.key" }
15
- set_default(:nginx_upload_local_certificate) { true }
16
- set_default(:nginx_ssl_certificate_local_path) {Capistrano::CLI.ui.ask "Local path to ssl certificate: "}
17
- set_default(:nginx_ssl_certificate_key_local_path) {Capistrano::CLI.ui.ask "Local path to ssl certificate key: "}
18
-
19
- set_default(:unicorn_pid) { "#{current_path}/tmp/pids/unicorn.pid" }
20
- set_default(:unicorn_config) { "#{shared_path}/config/unicorn.rb" }
21
- set_default(:unicorn_log) { "#{shared_path}/log/unicorn.log" }
22
- set_default(:unicorn_user) { user }
23
- set_default(:unicorn_workers) { Capistrano::CLI.ui.ask "Number of unicorn workers: " }
24
-
25
- set_default(:nginx_config_path) { "/etc/nginx/sites-available" }
26
-
27
- namespace :nginx do
28
- desc "Setup nginx configuration for this application"
29
- task :setup, roles: :web do
30
- template("nginx_conf.erb", "/tmp/#{application}")
31
- if nginx_config_path == "/etc/nginx/sites-available"
32
- run "#{sudo} mv /tmp/#{application} /etc/nginx/sites-available/#{application}"
33
- run "#{sudo} ln -fs /etc/nginx/sites-available/#{application} /etc/nginx/sites-enabled/#{application}"
34
- else
35
- run "#{sudo} mv /tmp/#{application} #{nginx_config_path}/#{application}.conf"
36
- end
37
-
38
- if nginx_use_ssl
39
- if nginx_upload_local_certificate
40
- put File.read(nginx_ssl_certificate_local_path), "/tmp/#{nginx_ssl_certificate}"
41
- put File.read(nginx_ssl_certificate_key_local_path), "/tmp/#{nginx_ssl_certificate_key}"
42
-
43
- run "#{sudo} mv /tmp/#{nginx_ssl_certificate} /etc/ssl/certs/#{nginx_ssl_certificate}"
44
- run "#{sudo} mv /tmp/#{nginx_ssl_certificate_key} /etc/ssl/private/#{nginx_ssl_certificate_key}"
45
- end
46
-
47
- run "#{sudo} chown root:root /etc/ssl/certs/#{nginx_ssl_certificate}"
48
- run "#{sudo} chown root:root /etc/ssl/private/#{nginx_ssl_certificate_key}"
49
- end
50
- end
51
-
52
- after "deploy:setup", "nginx:setup"
53
- after "deploy:setup", "nginx:reload"
54
-
55
- desc "Reload nginx configuration"
56
- task :reload, roles: :web do
57
- run "#{sudo} /etc/init.d/nginx reload"
58
- end
59
- end
60
-
61
- namespace :unicorn do
62
- desc "Setup Unicorn initializer and app configuration"
63
- task :setup, roles: :app do
64
- run "mkdir -p #{shared_path}/config"
65
- template "unicorn.rb.erb", unicorn_config
66
- template "unicorn_init.erb", "/tmp/unicorn_init"
67
- run "chmod +x /tmp/unicorn_init"
68
- run "#{sudo} mv /tmp/unicorn_init /etc/init.d/unicorn_#{application}"
69
- run "#{sudo} update-rc.d -f unicorn_#{application} defaults"
70
- end
71
-
72
- after "deploy:setup", "unicorn:setup"
73
-
74
- %w[start stop restart].each do |command|
75
- desc "#{command} unicorn"
76
- task command, roles: :app do
77
- run "service unicorn_#{application} #{command}"
78
- end
79
-
80
- after "deploy:#{command}", "unicorn:#{command}"
81
- end
82
- end
83
-
84
- desc "Setup logs rotation for nginx and unicorn"
85
- task :logrotate, roles: [:web, :app] do
86
- template("logrotate.erb", "/tmp/#{application}_logrotate")
87
- run "#{sudo} mv /tmp/#{application}_logrotate /etc/logrotate.d/#{application}"
88
- run "#{sudo} chown root:root /etc/logrotate.d/#{application}"
89
- end
90
-
91
- after "deploy:setup", "logrotate"
92
-
93
- def template(template_name, target)
94
- config_file = "#{templates_path}/#{template_name}"
95
- # if no customized file, proceed with default
96
- unless File.exists?(config_file)
97
- config_file = File.join(File.dirname(__FILE__), "../../generators/capistrano/nginx_unicorn/templates/#{template_name}")
98
- end
99
- put ERB.new(File.read(config_file)).result(binding), target
100
- end
101
-
102
- end