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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/stable/cli.rb +37 -56
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 943a8bb18d00d40f3649f71f0de4ea5f27e3aed2fa115eee16044ab22607bf8f
4
- data.tar.gz: a0537cee5a9fe8bcbe77035b1b116a2274b66b26e131039397d5d15a3ba9a105
3
+ metadata.gz: d85bcf8eb4e71a8dc2c0bdb7e77fd053f844c81160f5c8cdc4d6fa42194b1275
4
+ data.tar.gz: 0465bfad22e484c444f3c0564e54e135d7f2c83e93996af0085e9f3aa8cf1f6a
5
5
  SHA512:
6
- metadata.gz: d8de9e3bb95df90cdb1808c4bbab3116ff6930e33837a11cc123ed24fd45230a8d65114dfceb7bf242bb22f2e19dd426f7a88ea70e3433b6856a990642f1319f
7
- data.tar.gz: 7cd5cc00d03b662184586237fb8ff0126ca6381b7177c61458649b7b46a5a2be222bbb6311e31fa36564e9a5d34b2776bcdab2865ba3261d648c93ad3939d73b
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
- cmd = <<~CMD
81
- bash -lc '
82
- set -e
83
- cd "#{app_path}"
84
-
85
- export RAILS_ENV=development
86
- export BUNDLE_GEMFILE="#{app_path}/Gemfile"
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
- wait_for_port(port, timeout: 15)
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
- if ruby
181
- if rvm_available?
182
- ensure_rvm_ruby!(ruby)
183
- "rvm #{ruby}@#{name} do"
184
- elsif rbenv_available?
185
- ensure_rbenv_ruby!(ruby)
186
- "RBENV_VERSION=#{ruby}"
187
- else
188
- puts 'No Ruby version manager found (rvm or rbenv)'
189
- return
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
- cmd = <<~CMD
194
- bash -lc '
195
- set -e
196
- cd "#{app_path}"
197
-
198
- export RAILS_ENV=development
199
- export BUNDLE_GEMFILE="#{app_path}/Gemfile"
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, timeout: 15)
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: 15)
484
+ def wait_for_port(port, timeout: 30)
503
485
  require 'socket'
504
- start = Time.now
505
-
486
+ start_time = Time.now
506
487
  loop do
507
488
  TCPSocket.new('127.0.0.1', port).close
508
- return true
489
+ break
509
490
  rescue Errno::ECONNREFUSED
510
- raise "Rails failed to start on port #{port} within #{timeout}s" if Time.now - start > timeout
491
+ raise "Timeout waiting for port #{port}" if Time.now - start_time > timeout
511
492
 
512
- sleep 0.5
493
+ sleep 0.1
513
494
  end
514
495
  end
515
496
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stable-cli-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Simfukwe