apperol 0.0.1 → 0.0.2
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/README.md +3 -1
- data/apperol.gemspec +1 -1
- data/lib/apperol/cli.rb +33 -20
- data/lib/apperol/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91a4bdc6aea992758e4cdc112eab66f5b7a9fb4a
|
4
|
+
data.tar.gz: 680dd1c4cc9449cfce6a1befb765e6997402fbbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 819ddb160d318ba1219955f387c0580ba4024f62b33972aaf62f8f887d4de726e43afb44537b1492c0e321207539bd445f67e17d68e69848550b7eaccb3c5261
|
7
|
+
data.tar.gz: dd90401ab6224e5ee517339359aec58c063be4570b1cd8d92bba4416367a1d6f7b031b05c4fab5367ac124bb712fa2eb4dc56e828b577ce68c419d1f0c11a49c
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Apperol
|
2
2
|
|
3
|
+

|
4
|
+
|
3
5
|
Create apps from heroku repositories on GitHub.
|
4
6
|
Use app.json to customize options.
|
5
7
|
|
@@ -41,7 +43,7 @@ Usage: apperol [options] [app_extension]
|
|
41
43
|
|
42
44
|
## Contributing
|
43
45
|
|
44
|
-
1. Fork it ( https://github.com/
|
46
|
+
1. Fork it ( https://github.com/ys/apperol/fork )
|
45
47
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
46
48
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
47
49
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/apperol.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["yannick@heroku.com"]
|
11
11
|
spec.summary = %q{Create heroku app from heroku repository}
|
12
12
|
spec.description = %q{Create heroku app from heroku repository with app.json}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/ys/apperol"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
data/lib/apperol/cli.rb
CHANGED
@@ -19,27 +19,27 @@ module Apperol
|
|
19
19
|
option_key_name = key.downcase.gsub("_", "-")
|
20
20
|
option_key_key = key.downcase.to_sym
|
21
21
|
# Set default
|
22
|
-
|
23
|
-
|
22
|
+
value = definition.is_a?(String) ? definition : definition["value"]
|
23
|
+
@options[option_key_key] = value
|
24
|
+
required = definition.is_a?(String) || definition["required"].nil? || definition["required"] ? " required" : ""
|
25
|
+
description = definition.is_a?(String) ? key : definition["description"]
|
26
|
+
opts.on("--#{option_key_name} value", "#{description} (Default: '#{value}' #{required}) ") do |value|
|
24
27
|
@options[option_key_key] = value
|
25
28
|
end
|
26
29
|
end
|
27
30
|
opts.on("-p", "--personal", "Force app in personal apps instead of orgs") do
|
28
31
|
@options[:personal] = true
|
29
32
|
end
|
30
|
-
opts.on("-r", "--repo repo", "GitHub repository used for the deploy") do |repo|
|
33
|
+
opts.on("-r", "--repo repo", "GitHub repository used for the deploy (Default: user/dir_name)") do |repo|
|
31
34
|
@options[:repo] = repo
|
32
35
|
end
|
33
|
-
opts.on("-
|
34
|
-
@options[:
|
36
|
+
opts.on("-u", "--user user", "GitHub user where current repo is located (Default: Your GitHub username)") do |user|
|
37
|
+
@options[:user] = user
|
35
38
|
end
|
36
|
-
opts.on("-
|
37
|
-
@options[:org] = user
|
38
|
-
end
|
39
|
-
opts.on("-s", "--stack stack", "Stack for app on heroku") do |stack|
|
39
|
+
opts.on("-s", "--stack stack", "Stack for app on heroku (Default: cedar-14)") do |stack|
|
40
40
|
@options[:stack] = stack
|
41
41
|
end
|
42
|
-
opts.on("-b", "--branch branch", "Branch to setup app from") do |branch|
|
42
|
+
opts.on("-b", "--branch branch", "Branch to setup app from (Default: master)") do |branch|
|
43
43
|
@options[:branch] = branch
|
44
44
|
end
|
45
45
|
opts.on('-h', '--help', 'Displays Help') do
|
@@ -58,7 +58,8 @@ module Apperol
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def call
|
61
|
-
heroku_app_setup
|
61
|
+
# heroku_app_setup
|
62
|
+
app_setup_payload
|
62
63
|
end
|
63
64
|
|
64
65
|
def heroku_app_setup
|
@@ -144,7 +145,7 @@ module Apperol
|
|
144
145
|
required_not_filled = []
|
145
146
|
app_json["env"].each do |key, definition|
|
146
147
|
value = @options[key.downcase.to_sym]
|
147
|
-
if definition["required"] && value.strip.empty?
|
148
|
+
if (definition["required"].nil? || definition["required"]) && value.strip.empty?
|
148
149
|
required_not_filled << key
|
149
150
|
end
|
150
151
|
payload[:overrides][:env][key] = value
|
@@ -159,17 +160,22 @@ module Apperol
|
|
159
160
|
|
160
161
|
def github_tarball_location
|
161
162
|
$stdout.puts("Getting tarball location for empirical branch #{github_branch}")
|
162
|
-
|
163
|
-
req.basic_auth *github_creds
|
164
|
-
res = github_http.request(req)
|
163
|
+
res = github_get(tarball_path)
|
165
164
|
if res["Location"]
|
166
165
|
res["Location"]
|
167
166
|
else
|
168
|
-
$stderr.puts("error: No tarball found for #{github_url} : #{JSON.parse(res.body)["message"]}")
|
167
|
+
$stderr.puts("error: No tarball found for #{github_url + tarball_path} : #{JSON.parse(res.body)["message"]}")
|
169
168
|
exit 1
|
170
169
|
end
|
171
170
|
end
|
172
171
|
|
172
|
+
def github_get(path)
|
173
|
+
puts github_url + path
|
174
|
+
req = Net::HTTP::Get.new(github_url + path)
|
175
|
+
req.basic_auth *github_creds
|
176
|
+
github_http.request(req)
|
177
|
+
end
|
178
|
+
|
173
179
|
def github_http
|
174
180
|
@github_http ||= Net::HTTP.new(github_url.hostname, github_url.port).tap do |http|
|
175
181
|
http.use_ssl = true
|
@@ -185,11 +191,14 @@ module Apperol
|
|
185
191
|
end
|
186
192
|
|
187
193
|
def default_repo
|
188
|
-
"#{
|
194
|
+
"#{user}/#{heroku_app_name}"
|
189
195
|
end
|
190
196
|
|
191
|
-
def
|
192
|
-
@options.fetch(:
|
197
|
+
def user
|
198
|
+
@user ||= @options.fetch(:user) {
|
199
|
+
res = github_get("/user")
|
200
|
+
JSON.parse(res.body)["login"]
|
201
|
+
}
|
193
202
|
end
|
194
203
|
|
195
204
|
def rollbar_token
|
@@ -214,7 +223,11 @@ module Apperol
|
|
214
223
|
end
|
215
224
|
|
216
225
|
def github_url
|
217
|
-
|
226
|
+
URI("https://api.github.com")
|
227
|
+
end
|
228
|
+
|
229
|
+
def tarball_path
|
230
|
+
"/repos/#{repo}/tarball/#{github_branch}"
|
218
231
|
end
|
219
232
|
|
220
233
|
def github_creds
|
data/lib/apperol/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apperol
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yannick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -84,7 +84,7 @@ files:
|
|
84
84
|
- lib/apperol.rb
|
85
85
|
- lib/apperol/cli.rb
|
86
86
|
- lib/apperol/version.rb
|
87
|
-
homepage:
|
87
|
+
homepage: https://github.com/ys/apperol
|
88
88
|
licenses:
|
89
89
|
- MIT
|
90
90
|
metadata: {}
|