stable-cli-rails 0.6.5 → 0.6.7
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 +4 -4
- data/lib/stable/cli.rb +37 -56
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d85bcf8eb4e71a8dc2c0bdb7e77fd053f844c81160f5c8cdc4d6fa42194b1275
|
|
4
|
+
data.tar.gz: 0465bfad22e484c444f3c0564e54e135d7f2c83e93996af0085e9f3aa8cf1f6a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7dfdd1728588725ffdc0fda92cb367fb53323f5e6683c2c78c2b10a9ce06fef8ca5df494a11868c260f3be12d88021f0d922e88add43b97fd91a32e56432c342
|
|
7
|
+
data.tar.gz: e8e9f9cf95140ec1090130c059ebfca7087a2377136bc306a304918d0e35b1e25a3dd4c448cd99cce5a8e0eec22766298586d16ce463f2b28c6de678f1ed8d92
|
data/lib/stable/cli.rb
CHANGED
|
@@ -73,31 +73,21 @@ module Stable
|
|
|
73
73
|
|
|
74
74
|
# --- Start Rails server ---
|
|
75
75
|
puts "Starting Rails server for #{name} on port #{port}..."
|
|
76
|
-
|
|
77
76
|
log_file = File.join(app_path, 'log', 'stable.log')
|
|
78
77
|
FileUtils.mkdir_p(File.dirname(log_file))
|
|
79
78
|
|
|
80
|
-
|
|
81
|
-
bash
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
rvm #{ruby}@#{name} do bundle check || bundle install
|
|
89
|
-
rvm #{ruby}@#{name} do bundle exec rails db:prepare
|
|
90
|
-
|
|
91
|
-
exec rvm #{ruby}@#{name} do bundle exec rails s \
|
|
92
|
-
-p #{port} \
|
|
93
|
-
-b 127.0.0.1
|
|
94
|
-
'
|
|
95
|
-
CMD
|
|
96
|
-
|
|
97
|
-
pid = spawn(cmd, out: log_file, err: log_file)
|
|
79
|
+
pid = spawn(
|
|
80
|
+
'bash',
|
|
81
|
+
'-lc',
|
|
82
|
+
"cd #{app_path} && rvm #{ruby}@#{name} do bundle exec rails s -p #{port} -b 127.0.0.1",
|
|
83
|
+
out: log_file,
|
|
84
|
+
err: log_file
|
|
85
|
+
)
|
|
98
86
|
Process.detach(pid)
|
|
99
87
|
|
|
100
|
-
|
|
88
|
+
sleep 1.5
|
|
89
|
+
|
|
90
|
+
wait_for_port(port)
|
|
101
91
|
puts "✔ #{name} running at https://#{domain}"
|
|
102
92
|
end
|
|
103
93
|
|
|
@@ -177,42 +167,34 @@ module Stable
|
|
|
177
167
|
log_file = File.join(app[:path], 'log', 'stable.log')
|
|
178
168
|
FileUtils.mkdir_p(File.dirname(log_file))
|
|
179
169
|
|
|
180
|
-
|
|
181
|
-
if
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
170
|
+
ruby_exec =
|
|
171
|
+
if ruby
|
|
172
|
+
if rvm_available?
|
|
173
|
+
ensure_rvm_ruby!(ruby)
|
|
174
|
+
"rvm #{ruby}@#{name} do"
|
|
175
|
+
elsif rbenv_available?
|
|
176
|
+
ensure_rbenv_ruby!(ruby)
|
|
177
|
+
"RBENV_VERSION=#{ruby}"
|
|
178
|
+
else
|
|
179
|
+
puts 'No Ruby version manager found (rvm or rbenv)'
|
|
180
|
+
return
|
|
181
|
+
end
|
|
190
182
|
end
|
|
191
|
-
end
|
|
192
183
|
|
|
193
|
-
|
|
194
|
-
bash
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
rvm #{ruby}@#{name} do bundle check || bundle install
|
|
202
|
-
rvm #{ruby}@#{name} do bundle exec rails db:prepare
|
|
203
|
-
|
|
204
|
-
exec rvm #{ruby}@#{name} do bundle exec rails s \
|
|
205
|
-
-p #{port} \
|
|
206
|
-
-b 127.0.0.1
|
|
207
|
-
'
|
|
208
|
-
CMD
|
|
209
|
-
|
|
210
|
-
pid = spawn(cmd, out: log_file, err: log_file)
|
|
184
|
+
pid = spawn(
|
|
185
|
+
'bash',
|
|
186
|
+
'-lc',
|
|
187
|
+
"cd #{app[:path]} && rvm #{ruby}@#{name} do bundle exec rails s -p #{port} -b 127.0.0.1",
|
|
188
|
+
out: log_file,
|
|
189
|
+
err: log_file
|
|
190
|
+
)
|
|
211
191
|
Process.detach(pid)
|
|
212
192
|
|
|
193
|
+
sleep 1.5
|
|
194
|
+
|
|
213
195
|
generate_cert(app[:domain])
|
|
214
196
|
update_caddyfile(app[:domain], port)
|
|
215
|
-
wait_for_port(port
|
|
197
|
+
wait_for_port(port)
|
|
216
198
|
caddy_reload
|
|
217
199
|
|
|
218
200
|
puts "#{name} started on https://#{app[:domain]}"
|
|
@@ -499,17 +481,16 @@ module Stable
|
|
|
499
481
|
end
|
|
500
482
|
end
|
|
501
483
|
|
|
502
|
-
def wait_for_port(port, timeout:
|
|
484
|
+
def wait_for_port(port, timeout: 30)
|
|
503
485
|
require 'socket'
|
|
504
|
-
|
|
505
|
-
|
|
486
|
+
start_time = Time.now
|
|
506
487
|
loop do
|
|
507
488
|
TCPSocket.new('127.0.0.1', port).close
|
|
508
|
-
|
|
489
|
+
break
|
|
509
490
|
rescue Errno::ECONNREFUSED
|
|
510
|
-
raise "
|
|
491
|
+
raise "Timeout waiting for port #{port}" if Time.now - start_time > timeout
|
|
511
492
|
|
|
512
|
-
sleep 0.
|
|
493
|
+
sleep 0.1
|
|
513
494
|
end
|
|
514
495
|
end
|
|
515
496
|
|