dark-capistrano-recipes 0.6.11 → 0.6.12.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +2 -2
- data/dark-capistrano-recipes.gemspec +2 -2
- data/lib/helpers.rb +10 -2
- data/lib/recipes/application.rb +3 -3
- data/lib/recipes/bundler.rb +1 -1
- data/lib/recipes/god.rb +14 -5
- data/lib/recipes/nginx.rb +3 -1
- data/lib/recipes/symlinks.rb +4 -1
- data/lib/recipes/unicorn.rb +15 -11
- metadata +5 -4
data/VERSION.yml
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{dark-capistrano-recipes}
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.12.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Phil Misiowiec", "Leonardo Bighetti"]
|
12
|
-
s.date = %q{2010-10-
|
12
|
+
s.date = %q{2010-10-07}
|
13
13
|
s.description = %q{Extend the Capistrano gem with these useful recipes}
|
14
14
|
s.email = %q{leonardobighetti@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/helpers.rb
CHANGED
@@ -21,11 +21,11 @@ def is_using_nginx
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def is_using_passenger
|
24
|
-
is_using('passenger',:
|
24
|
+
is_using('passenger',:app_server)
|
25
25
|
end
|
26
26
|
|
27
27
|
def is_using_unicorn
|
28
|
-
is_using('unicorn',:
|
28
|
+
is_using('unicorn',:app_server)
|
29
29
|
end
|
30
30
|
|
31
31
|
def is_using_god
|
@@ -56,6 +56,14 @@ def parse_config(file)
|
|
56
56
|
return ERB.new(template).result(binding) # parse it
|
57
57
|
end
|
58
58
|
|
59
|
+
|
60
|
+
# Prompts the user for a message to agree/decline,
|
61
|
+
#
|
62
|
+
def ask(message, default=true)
|
63
|
+
Capistrano::CLI.ui.agree(message)
|
64
|
+
|
65
|
+
end
|
66
|
+
|
59
67
|
# Generates a configuration file parsing through ERB
|
60
68
|
# Fetches local file and uploads it to remote_file
|
61
69
|
# Make sure your user has the right permissions.
|
data/lib/recipes/application.rb
CHANGED
@@ -6,9 +6,9 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
6
6
|
|
7
7
|
|
8
8
|
# Server settings
|
9
|
-
set :
|
10
|
-
set :web_server, :nginx
|
11
|
-
set :runner, user
|
9
|
+
set :app_server, :unicorn unless exists?(:app_server)
|
10
|
+
set :web_server, :nginx unless exists?(:web_server)
|
11
|
+
set :runner, user unless exists?(:runner)
|
12
12
|
|
13
13
|
# The port to listen to, normally we default to 80
|
14
14
|
set :application_port, 80 unless exists?(:application_port)
|
data/lib/recipes/bundler.rb
CHANGED
@@ -11,7 +11,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
11
11
|
|
12
12
|
# [internal] runs bundle install on the app server
|
13
13
|
task :install, :roles => :app, :except => { :no_release => true } do
|
14
|
-
run "cd #{current_path} && bundle install --deployment"
|
14
|
+
run "cd #{current_path} && bundle install --deployment --without=development test"
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
data/lib/recipes/god.rb
CHANGED
@@ -14,7 +14,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
14
14
|
end
|
15
15
|
|
16
16
|
_cset(:bin_god) { defined?(:rvm_ruby_string) ? 'bootup_god' : 'god' }
|
17
|
-
_cset(:server_name) { "#{application}-#{
|
17
|
+
_cset(:server_name) { "#{application}-#{app_server}" }
|
18
18
|
_cset(:god_init_local) { "#{docs_path}/god/god.init" }
|
19
19
|
_cset :god_init_temp, '/tmp/god.init'
|
20
20
|
_cset :god_init_remote, '/etc/init.d/god'
|
@@ -72,10 +72,19 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
72
72
|
puts "God is no more."
|
73
73
|
end
|
74
74
|
|
75
|
-
|
76
|
-
|
75
|
+
desc "Restarts everything"
|
76
|
+
namespace :restart do
|
77
|
+
task :default, :roles => :app, :except => { :no_release => true } do
|
78
|
+
sudo "#{bin_god} restart #{application}"
|
79
|
+
end
|
80
|
+
|
81
|
+
desc "Restarts the app server"
|
82
|
+
task :app, :roles => :app, :except => { :no_release => true } do
|
83
|
+
sudo "#{bin_god} restart #{server-name}"
|
84
|
+
end
|
77
85
|
end
|
78
86
|
|
87
|
+
desc "Fetches the log for the whole group"
|
79
88
|
task :log, :roles => :app do
|
80
89
|
sudo "#{bin_god} log #{application}"
|
81
90
|
end
|
@@ -111,6 +120,6 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
111
120
|
end
|
112
121
|
end
|
113
122
|
after 'deploy:setup' do
|
114
|
-
god.setup if
|
115
|
-
end
|
123
|
+
god.setup if Capistrano::CLI.ui.agree("Create app.god in app's shared path? [Yn]")
|
124
|
+
end if is_using_god
|
116
125
|
end
|
data/lib/recipes/nginx.rb
CHANGED
@@ -48,7 +48,9 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
48
48
|
|
49
49
|
end
|
50
50
|
|
51
|
-
after 'deploy:setup'
|
51
|
+
after 'deploy:setup' do
|
52
|
+
nginx.setup if Capistrano::CLI.ui.agree("Create nginx configuration file? [Yn]")
|
53
|
+
end if is_using_nginx
|
52
54
|
|
53
55
|
end
|
54
56
|
|
data/lib/recipes/symlinks.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
Capistrano::Configuration.instance(:must_exist).load do
|
2
2
|
# These are set to the same structure in shared <=> current
|
3
3
|
set :normal_symlinks, %w(
|
4
|
+
tmp
|
5
|
+
log
|
4
6
|
config/database.yml
|
5
7
|
) unless exists?(:normal_symlinks)
|
6
8
|
|
7
9
|
# Weird symlinks go somewhere else. Weird.
|
8
10
|
set :weird_symlinks, {
|
9
|
-
'bundle' => 'vendor/bundle'
|
11
|
+
'bundle' => 'vendor/bundle',
|
12
|
+
'pids' => 'tmp/pids'
|
10
13
|
} unless exists?(:weird_symlinks)
|
11
14
|
|
12
15
|
namespace :symlinks do
|
data/lib/recipes/unicorn.rb
CHANGED
@@ -47,21 +47,19 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
47
47
|
# Unicorn
|
48
48
|
#------------------------------------------------------------------------------
|
49
49
|
namespace :unicorn do
|
50
|
-
desc "
|
50
|
+
desc "Starts unicorn directly"
|
51
51
|
task :start, :roles => :app do
|
52
52
|
run unicorn_start_cmd
|
53
53
|
end
|
54
54
|
|
55
|
-
desc "
|
56
|
-
task :stop, :roles => :app do
|
55
|
+
desc "Stops unicorn directly"
|
56
|
+
task :stop, :roles => :app do
|
57
57
|
run unicorn_stop_cmd
|
58
58
|
end
|
59
59
|
|
60
|
-
desc "
|
61
|
-
task :restart, :roles => :app do
|
62
|
-
run unicorn_restart_cmd
|
63
|
-
|
64
|
-
end
|
60
|
+
desc "Restarts unicorn directly"
|
61
|
+
task :restart, :roles => :app do
|
62
|
+
run unicorn_restart_cmd
|
65
63
|
end
|
66
64
|
|
67
65
|
desc <<-EOF
|
@@ -71,13 +69,19 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
71
69
|
EOF
|
72
70
|
task :setup, :roles => :app , :except => { :no_release => true } do
|
73
71
|
# TODO: refactor this to a more generic setup task once we have more socket tasks.
|
74
|
-
|
75
|
-
|
72
|
+
commands = []
|
73
|
+
commands << "mkdir -p #{sockets_path}"
|
74
|
+
commands << "chown #{user}:#{group} #{sockets_path} -R"
|
75
|
+
commands << "chmod +rw #{sockets_path}"
|
76
|
+
|
77
|
+
run commands.join(" && ")
|
76
78
|
generate_config(unicorn_local_config,unicorn_remote_config)
|
77
79
|
end
|
78
80
|
end
|
79
81
|
|
80
|
-
after 'deploy:setup'
|
82
|
+
after 'deploy:setup' do
|
83
|
+
unicorn.setup if Capistrano::CLI.ui.agree("Create unicorn configuration file? [Yn]")
|
84
|
+
end if is_using_unicorn
|
81
85
|
|
82
86
|
end
|
83
87
|
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dark-capistrano-recipes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 79
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
|
9
|
+
- 12
|
10
|
+
- 0
|
11
|
+
version: 0.6.12.0
|
11
12
|
platform: ruby
|
12
13
|
authors:
|
13
14
|
- Phil Misiowiec
|
@@ -16,7 +17,7 @@ autorequire:
|
|
16
17
|
bindir: bin
|
17
18
|
cert_chain: []
|
18
19
|
|
19
|
-
date: 2010-10-
|
20
|
+
date: 2010-10-07 00:00:00 -03:00
|
20
21
|
default_executable:
|
21
22
|
dependencies:
|
22
23
|
- !ruby/object:Gem::Dependency
|