heroku_whiz 0.2.0 → 0.2.1
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
- checksums.yaml.gz.sig +0 -0
- data/lib/heroku_whiz.rb +107 -28
- data.tar.gz.sig +0 -0
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8fa80bb83fdb773d2b05d79c4df5e1f176de51608c90eb8e24506e88c22027f
|
4
|
+
data.tar.gz: 2a3c0e94b9737149aefa1e10148e88bb1875c62be15775807d33edb75859e155
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f00da4e02b5bd3ec99079d64a085b08581d2f1ce326e4a293e5931f59eae480b81854b33e0c9930c14d9dc0604894e1de662008cbd2d25246cd06bddee09397
|
7
|
+
data.tar.gz: 6f9fbaa7facaf1227583a364f19c29be59ba7a6ab136e929e11fd8d386af995e8fe28b9897ece4cb25c7c5e14825d565ccc6c34f70657f9f636badbca128b3ef
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/heroku_whiz.rb
CHANGED
@@ -8,6 +8,26 @@
|
|
8
8
|
# description: Handy (experimental) Heroku gem for noobs to create a
|
9
9
|
# simple Heroku app in a whiz!
|
10
10
|
|
11
|
+
# Q: Why Heroku?
|
12
|
+
#
|
13
|
+
# A: With a quick Twitter search for Free wen hosting, a
|
14
|
+
# popular Tweet mentioned Heroku
|
15
|
+
#
|
16
|
+
# 10 FREE Hosting/Clouds for Your website:
|
17
|
+
#
|
18
|
+
# ➡️ GitHub Pages
|
19
|
+
# ➡️ Heroku
|
20
|
+
# ➡️ Amazon Web Services (AWS)
|
21
|
+
# ➡️ Vercel
|
22
|
+
# ➡️ Firebase Hosting
|
23
|
+
# ➡️ Awardspace
|
24
|
+
# ➡️ Netlify
|
25
|
+
# ➡️ Google Cloud
|
26
|
+
# ➡️ Cloudflare
|
27
|
+
# ➡️ Weebly
|
28
|
+
#
|
29
|
+
|
30
|
+
|
11
31
|
# note: If this gem becomes outdated because of a change in the Heroku app
|
12
32
|
# setup process, please inform the owner of this project via *Issues*
|
13
33
|
# on GitHub (https://github.com/jrobertson/heroku_whiz).
|
@@ -39,13 +59,13 @@ require 'launchy'
|
|
39
59
|
|
40
60
|
class WhizBase
|
41
61
|
|
42
|
-
def initialize(app_path, debug: false)
|
62
|
+
def initialize(app_path, verbose: true, debug: false)
|
43
63
|
|
44
|
-
@app_path, debug = app_path, debug
|
64
|
+
@app_path, @verbose, debug = app_path, verbose, debug
|
45
65
|
|
46
66
|
end
|
47
67
|
|
48
|
-
def create()
|
68
|
+
def create(add: nil)
|
49
69
|
|
50
70
|
config = %q(
|
51
71
|
run lambda {|env|
|
@@ -81,14 +101,20 @@ gem 'puma'
|
|
81
101
|
|
82
102
|
end
|
83
103
|
|
104
|
+
appname = heroku_app()
|
105
|
+
|
106
|
+
if setup == :both then
|
107
|
+
|
108
|
+
Clipboard.copy appname
|
109
|
+
puts 'App name ' + appname + ' copied to clipboard'
|
110
|
+
`heroku apps:destroy #{appname}`
|
111
|
+
|
112
|
+
end
|
113
|
+
|
84
114
|
rm_rf File.join(@app_path, '.git')
|
85
115
|
rmdir File.join(@app_path, '.git')
|
86
116
|
rmdir @app_path
|
87
117
|
|
88
|
-
return unless setup == :both
|
89
|
-
|
90
|
-
`heroku apps:destroy --confirm #{heroku_app()}`
|
91
|
-
|
92
118
|
end
|
93
119
|
|
94
120
|
def deploy()
|
@@ -108,10 +134,13 @@ gem 'puma'
|
|
108
134
|
# high probability the appname you have chosen has already been taken
|
109
135
|
# e.g. hello2 => hello2.herokuapp.com
|
110
136
|
|
137
|
+
puts 'Running *heroku create*' if @verbose
|
111
138
|
`heroku create`
|
112
|
-
sleep
|
139
|
+
sleep 3
|
113
140
|
|
141
|
+
puts 'Running *git push heroku master*' if @verbose
|
114
142
|
r = `git push heroku master`
|
143
|
+
sleep 10
|
115
144
|
|
116
145
|
end
|
117
146
|
|
@@ -166,7 +195,8 @@ gem 'puma'
|
|
166
195
|
end
|
167
196
|
|
168
197
|
def heroku_app()
|
169
|
-
`heroku config
|
198
|
+
s = `heroku config`
|
199
|
+
s.lines.first.split[1] if s
|
170
200
|
end
|
171
201
|
|
172
202
|
def rm(file)
|
@@ -183,38 +213,85 @@ gem 'puma'
|
|
183
213
|
|
184
214
|
end
|
185
215
|
|
216
|
+
class SinatraWhizError < Exception
|
217
|
+
end
|
218
|
+
|
186
219
|
class SinatraWhiz < WhizBase
|
187
220
|
|
188
|
-
def initialize(app_path, debug: false)
|
189
|
-
super(app_path, debug: debug)
|
221
|
+
def initialize(app_path, verbose: true, debug: false)
|
222
|
+
super(app_path, verbose: verbose, debug: debug)
|
190
223
|
end
|
191
224
|
|
192
|
-
def create()
|
225
|
+
def create(add: nil)
|
193
226
|
|
194
|
-
|
227
|
+
if add then
|
228
|
+
|
229
|
+
FileUtils.mkdir_p @app_path
|
230
|
+
FileUtils.chdir @app_path
|
231
|
+
|
232
|
+
# copying the files into file directory @app_path
|
233
|
+
# ensure the files config.ru, Gemfile, and Procfile exist
|
234
|
+
#
|
235
|
+
a = Dir.glob(File.join(add,'*'))
|
236
|
+
files = a.map {|x| File.basename(x)}
|
237
|
+
|
238
|
+
expected = %w(config.ru Gemfile Procfile)
|
239
|
+
found = (files & expected)
|
240
|
+
|
241
|
+
if found.length < 3 then
|
242
|
+
raise SinatraWhizError, 'missing ' + (expected - found).join(', ')
|
243
|
+
end
|
244
|
+
|
245
|
+
puts 'copying files ' + a.inspect if @debug
|
246
|
+
|
247
|
+
a.each {|x| FileUtils.cp x, @app_path }
|
248
|
+
|
249
|
+
else
|
250
|
+
|
251
|
+
config = %q(
|
195
252
|
require './hello'
|
196
253
|
run Sinatra::Application
|
197
254
|
)
|
198
|
-
|
199
|
-
gemfile = %q(
|
255
|
+
gemfile = %q(
|
200
256
|
source 'https://rubygems.org'
|
201
257
|
gem 'sinatra'
|
202
258
|
gem 'puma'
|
203
259
|
)
|
204
260
|
|
205
|
-
|
206
|
-
|
207
|
-
create_basefiles(config, gemfile, procfile)
|
261
|
+
procfile = 'web: bundle exec rackup config.ru -p $PORT'
|
262
|
+
create_basefiles(config, gemfile, procfile)
|
208
263
|
|
209
|
-
|
264
|
+
hello_rb = %q(
|
210
265
|
require 'sinatra'
|
211
266
|
|
212
267
|
get '/' do
|
213
268
|
"Hello World!"
|
214
269
|
end
|
215
270
|
)
|
216
|
-
|
217
|
-
|
271
|
+
File.write File.join(@app_path, 'hello.rb'), hello_rb
|
272
|
+
sleep 0.3
|
273
|
+
|
274
|
+
end
|
275
|
+
|
276
|
+
end
|
277
|
+
|
278
|
+
def local_testrun()
|
279
|
+
r = IO.popen("bundle exec rackup -p 9292 config.ru")
|
280
|
+
puts 'r: ' + r.inspect if @debug
|
281
|
+
sleep 2
|
282
|
+
|
283
|
+
s = URI.open('http://127.0.0.1:9292').read
|
284
|
+
sleep 1
|
285
|
+
|
286
|
+
Process.kill('QUIT', r.pid)
|
287
|
+
|
288
|
+
puts 'SUCCESS! Ready to deploy' if s == "Hello World!"
|
289
|
+
end
|
290
|
+
|
291
|
+
def wipe_clean(setup=nil)
|
292
|
+
|
293
|
+
rm File.join(@app_path, 'hello.rb')
|
294
|
+
super(setup)
|
218
295
|
|
219
296
|
end
|
220
297
|
|
@@ -222,18 +299,19 @@ end
|
|
222
299
|
|
223
300
|
class HerokuWhiz
|
224
301
|
|
225
|
-
def initialize(dir: '.', template: 'rack', appname:
|
302
|
+
def initialize(dir: '.', template: 'rack', appname: File.basename(Dir.pwd),
|
226
303
|
verbose: true, debug: false)
|
227
304
|
|
228
305
|
@dir, @template, @appname, @verbose = dir, template, appname, verbose
|
229
306
|
|
230
307
|
@app_path = File.join(@dir, @appname)
|
308
|
+
FileUtils.chdir @app_path if File.exists? @app_path
|
231
309
|
|
232
310
|
case @template.to_sym
|
233
311
|
when :rack
|
234
|
-
@tapp = WhizBase.new @app_path, debug: debug
|
312
|
+
@tapp = WhizBase.new @app_path, verbose: verbose, debug: debug
|
235
313
|
when :sinatra
|
236
|
-
@tapp = SinatraWhiz.new @app_path, debug: debug
|
314
|
+
@tapp = SinatraWhiz.new @app_path, verbose: verbose, debug: debug
|
237
315
|
end
|
238
316
|
|
239
317
|
end
|
@@ -253,11 +331,11 @@ class HerokuWhiz
|
|
253
331
|
`heroku open`
|
254
332
|
end
|
255
333
|
|
256
|
-
def create()
|
334
|
+
def create(add: nil)
|
257
335
|
|
258
336
|
return unless @tapp
|
259
337
|
|
260
|
-
@tapp.create
|
338
|
+
@tapp.create add: add
|
261
339
|
|
262
340
|
# build
|
263
341
|
`bundle install`
|
@@ -282,7 +360,7 @@ class HerokuWhiz
|
|
282
360
|
|
283
361
|
return unless @tapp
|
284
362
|
|
285
|
-
@tapp.wipe_clean
|
363
|
+
@tapp.wipe_clean setup
|
286
364
|
|
287
365
|
end
|
288
366
|
|
@@ -313,7 +391,8 @@ class HerokuWhiz
|
|
313
391
|
private
|
314
392
|
|
315
393
|
def heroku_app()
|
316
|
-
`heroku config
|
394
|
+
s = `heroku config`
|
395
|
+
s.lines.first.split[1] if s
|
317
396
|
end
|
318
397
|
|
319
398
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
metadata.gz.sig
CHANGED
Binary file
|