producer-rails 0.0.5 → 0.0.6
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.
- data/lib/producer/rails/version.rb +1 -1
- data/lib/producer/rails.rb +76 -29
- metadata +4 -3
data/lib/producer/rails.rb
CHANGED
@@ -13,62 +13,105 @@ module Producer
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
+
UNICORN_CONF_PATH = 'config/unicorn.rb'.freeze
|
17
|
+
WWW_PID_PATH = 'tmp/run/www.pid'.freeze
|
18
|
+
WWW_SOCK_PATH = 'tmp/run/www.socke'.freeze
|
19
|
+
BUNDLER_UNSET_GROUPS = %w[development test].freeze
|
20
|
+
|
16
21
|
define_macro :deploy do
|
17
22
|
app_path = get :app_path
|
18
23
|
|
19
24
|
if ENV.key? 'DEPLOY_INIT'
|
20
|
-
|
21
|
-
git_clone get(:repository), app_path
|
22
|
-
app_init app_path, get(:app_mkdir)
|
23
|
-
bundle_install app_path
|
24
|
-
db_config app_path
|
25
|
-
db_init app_path
|
26
|
-
secrets_init app_path
|
27
|
-
www_config app_path
|
25
|
+
deploy_init app_path
|
28
26
|
else
|
29
|
-
|
30
|
-
bundle_install app_path
|
31
|
-
db_migrate app_path
|
32
|
-
db_seed app_path if (get :db_seed rescue false)
|
27
|
+
deploy_update app_path
|
33
28
|
end
|
34
29
|
|
35
30
|
assets_update app_path
|
36
31
|
|
32
|
+
deploy_restart
|
33
|
+
end
|
34
|
+
|
35
|
+
define_macro :deploy_init do |app_path = get(:app_path)|
|
36
|
+
app_path ||= get :app_path
|
37
|
+
|
38
|
+
ensure_dir app_path, mode: 0701
|
39
|
+
git_clone get(:repository), app_path
|
40
|
+
app_init app_path,
|
41
|
+
dirs: (get :app_mkdir, []),
|
42
|
+
files: (get :app_mkfile, [])
|
43
|
+
db_config app_path
|
44
|
+
bundle_install app_path, (get :bundler_unset, [])
|
45
|
+
db_init app_path
|
46
|
+
secrets_init app_path
|
47
|
+
www_config app_path
|
48
|
+
end
|
49
|
+
|
50
|
+
define_macro :deploy_update do |app_path = nil|
|
51
|
+
app_path ||= get :app_path
|
52
|
+
|
53
|
+
git_update app_path
|
54
|
+
bundle_install app_path
|
55
|
+
db_migrate app_path
|
56
|
+
db_seed app_path if set? :db_seed
|
57
|
+
www_config app_path
|
58
|
+
end
|
37
59
|
|
38
|
-
|
39
|
-
|
60
|
+
define_macro :deploy_restart do |app_path = nil|
|
61
|
+
app_path ||= get :app_path
|
40
62
|
|
41
63
|
if ENV.key?('DEPLOY_INIT') || ENV.key?('DEPLOY_START')
|
42
|
-
|
43
|
-
app_start app_path, queue_workers
|
64
|
+
deploy_start
|
44
65
|
else
|
45
|
-
|
46
|
-
|
47
|
-
www_start app_path, www_pid_path
|
48
|
-
app_start app_path, queue_workers
|
66
|
+
deploy_stop
|
67
|
+
deploy_start
|
49
68
|
end
|
50
69
|
end
|
51
70
|
|
71
|
+
define_macro :deploy_stop do
|
72
|
+
app_path ||= get :app_path
|
73
|
+
www_pid_path = (get :www_pid_path, WWW_PID_PATH)
|
74
|
+
processes = (get :processes, nil)
|
75
|
+
|
76
|
+
app_stop if processes
|
77
|
+
www_stop app_path, www_pid_path
|
78
|
+
end
|
79
|
+
|
80
|
+
define_macro :deploy_start do
|
81
|
+
app_path ||= get :app_path
|
82
|
+
www_pid_path = (get :www_pid_path, WWW_PID_PATH)
|
83
|
+
processes = (get :processes, nil)
|
84
|
+
|
85
|
+
www_start app_path, www_pid_path
|
86
|
+
app_start app_path, processes if processes
|
87
|
+
end
|
88
|
+
|
52
89
|
define_test :bundle_installed? do |gemfile|
|
53
90
|
no_sh "bundle check #{gemfile}"
|
54
91
|
end
|
55
92
|
|
56
|
-
define_macro :bundle_install do |path|
|
93
|
+
define_macro :bundle_install do |path, remove_groups = []|
|
57
94
|
gemfile = "--gemfile #{path}/Gemfile"
|
95
|
+
without_groups = (remove_groups + BUNDLER_UNSET_GROUPS).join ' '
|
58
96
|
|
59
97
|
condition { bundle_installed? gemfile }
|
60
98
|
|
61
|
-
sh "bundle install --without
|
99
|
+
sh "bundle install --without #{without_groups} #{gemfile}"
|
62
100
|
end
|
63
101
|
|
64
|
-
define_macro :app_init do |path, dirs: []|
|
102
|
+
define_macro :app_init do |path, dirs: [], files: {}|
|
65
103
|
run_dir = "#{path}/tmp/run"
|
104
|
+
dirs << 'public/assets'
|
66
105
|
dirs.map! { |e| File.join(path, e) }
|
106
|
+
files = files.each_with_object({}) do |(k, v), m|
|
107
|
+
m[File.join(path, k)] = v
|
108
|
+
end
|
67
109
|
|
68
110
|
condition { no_dir? run_dir }
|
69
111
|
|
70
|
-
mkdir run_dir, 0701
|
71
|
-
dirs.each
|
112
|
+
mkdir run_dir, mode: 0701
|
113
|
+
dirs.each { |e| mkdir e, mode: 0700 }
|
114
|
+
files.each { |k, v| file_write k, v, mode: 0600 }
|
72
115
|
end
|
73
116
|
|
74
117
|
define_macro :db_config do |path|
|
@@ -118,12 +161,16 @@ production:
|
|
118
161
|
end
|
119
162
|
|
120
163
|
define_macro :www_config do |path|
|
121
|
-
www_config_path = File.join(
|
164
|
+
www_config_path = File.join(
|
165
|
+
path,
|
166
|
+
(get :www_config_path, UNICORN_CONF_PATH)
|
167
|
+
)
|
122
168
|
conf = <<-eoh
|
123
169
|
worker_processes #{get :www_workers}
|
170
|
+
timeout #{get :www_timeout, 60}
|
124
171
|
preload_app false
|
125
172
|
pid '#{get :www_pid_path}'
|
126
|
-
listen "\#{ENV['HOME']}/#{path}/#{get :www_sock_path}"
|
173
|
+
listen "\#{ENV['HOME']}/#{path}/#{(get :www_sock_path, WWW_SOCK_PATH)}"
|
127
174
|
eoh
|
128
175
|
|
129
176
|
condition { no_file_contains www_config_path, conf }
|
@@ -138,10 +185,10 @@ listen "\#{ENV['HOME']}/#{path}/#{get :www_sock_path}"
|
|
138
185
|
sh "cd #{path} && find public/assets -type f -exec chmod 644 {} \\;"
|
139
186
|
end
|
140
187
|
|
141
|
-
define_macro :app_start do |app_path,
|
188
|
+
define_macro :app_start do |app_path, processes|
|
142
189
|
condition { no_sh 'tmux has-session -t app' }
|
143
190
|
|
144
|
-
sh "cd #{app_path} && tmux new -d -s app 'foreman start -c
|
191
|
+
sh "cd #{app_path} && tmux new -d -s app 'foreman start -c #{processes}; zsh'"
|
145
192
|
end
|
146
193
|
|
147
194
|
define_macro :app_stop do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: producer-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-02-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: producer-core
|
@@ -86,8 +86,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
86
|
version: '0'
|
87
87
|
requirements: []
|
88
88
|
rubyforge_project:
|
89
|
-
rubygems_version: 1.8.
|
89
|
+
rubygems_version: 1.8.30
|
90
90
|
signing_key:
|
91
91
|
specification_version: 3
|
92
92
|
summary: producer rails addon
|
93
93
|
test_files: []
|
94
|
+
has_rdoc:
|