slotbox 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/slotbox +1 -1
- data/lib/slotbox.rb +1 -1
- data/plugin/init.rb +1 -1
- data/plugin/lib/slotbox/api/deploying.rb +1 -1
- data/plugin/lib/slotbox/command/base.rb +62 -0
- data/plugin/lib/slotbox/command/deploy.rb +0 -5
- metadata +2 -2
data/bin/slotbox
CHANGED
@@ -57,7 +57,7 @@ slotbox_host = ENV["SLOTBOX_HOST"] || "slotbox.es"
|
|
57
57
|
|
58
58
|
system <<-EOF
|
59
59
|
|
60
|
-
export HEROKU_HOST=${HEROKU_HOST:-
|
60
|
+
export HEROKU_HOST=${HEROKU_HOST:-https://#{slotbox_host}:5000/}
|
61
61
|
export HEROKU_STATUS_HOST=${HEROKU_STATUS_HOST:-"#{slotbox_host}"}
|
62
62
|
export HEROKU_SSL_VERIFY=${HEROKU_SSL_VERIFY:-"disable"}
|
63
63
|
|
data/lib/slotbox.rb
CHANGED
data/plugin/init.rb
CHANGED
@@ -76,4 +76,66 @@ class Heroku::Command::Base
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
+
end
|
80
|
+
|
81
|
+
module Heroku
|
82
|
+
module Command
|
83
|
+
def self.run(cmd, arguments=[])
|
84
|
+
begin
|
85
|
+
object, method = prepare_run(cmd, arguments.dup)
|
86
|
+
object.send(method)
|
87
|
+
rescue Interrupt, StandardError, SystemExit => error
|
88
|
+
# load likely error classes, as they may not be loaded yet due to defered loads
|
89
|
+
require 'heroku-api'
|
90
|
+
require 'rest_client'
|
91
|
+
raise(error)
|
92
|
+
end
|
93
|
+
rescue Heroku::API::Errors::Unauthorized, RestClient::Unauthorized
|
94
|
+
puts "Authentication failure"
|
95
|
+
unless ENV['HEROKU_API_KEY']
|
96
|
+
run "login"
|
97
|
+
retry
|
98
|
+
end
|
99
|
+
rescue Heroku::API::Errors::VerificationRequired, RestClient::PaymentRequired => e
|
100
|
+
retry if Heroku::Helpers.confirm_billing
|
101
|
+
rescue Heroku::API::Errors::NotFound => e
|
102
|
+
error extract_error(e.response.body) {
|
103
|
+
e.response.body =~ /^([\w\s]+ not found).?$/ ? $1 : "Resource not found"
|
104
|
+
}
|
105
|
+
rescue RestClient::ResourceNotFound => e
|
106
|
+
error extract_error(e.http_body) {
|
107
|
+
e.http_body =~ /^([\w\s]+ not found).?$/ ? $1 : "Resource not found"
|
108
|
+
}
|
109
|
+
rescue Heroku::API::Errors::Locked => e
|
110
|
+
app = e.response.headers[:x_confirmation_required]
|
111
|
+
if confirm_command(app, extract_error(e.response.body))
|
112
|
+
arguments << '--confirm' << app
|
113
|
+
retry
|
114
|
+
end
|
115
|
+
rescue RestClient::Locked => e
|
116
|
+
app = e.response.headers[:x_confirmation_required]
|
117
|
+
if confirm_command(app, extract_error(e.http_body))
|
118
|
+
arguments << '--confirm' << app
|
119
|
+
retry
|
120
|
+
end
|
121
|
+
rescue Heroku::API::Errors::Timeout, RestClient::RequestTimeout
|
122
|
+
error "API request timed out. Please try again, or contact support@heroku.com if this issue persists."
|
123
|
+
rescue Heroku::API::Errors::ErrorWithResponse => e
|
124
|
+
error extract_error(e.response.body)
|
125
|
+
rescue RestClient::RequestFailed => e
|
126
|
+
error extract_error(e.http_body)
|
127
|
+
rescue CommandFailed => e
|
128
|
+
error e.message
|
129
|
+
rescue OptionParser::ParseError
|
130
|
+
commands[cmd] ? run("help", [cmd]) : run("help")
|
131
|
+
rescue Excon::Errors::SocketError => e
|
132
|
+
if e.message == 'getaddrinfo: nodename nor servname provided, or not known (SocketError)'
|
133
|
+
error("Unable to connect to Heroku API, please check internet connectivity and try again.")
|
134
|
+
else
|
135
|
+
raise(e)
|
136
|
+
end
|
137
|
+
ensure
|
138
|
+
display_warnings
|
139
|
+
end
|
140
|
+
end
|
79
141
|
end
|
@@ -17,11 +17,6 @@ module Heroku::Command
|
|
17
17
|
path = Addressable::URI.parse(remote).path.split('/')
|
18
18
|
remote = "https://github.com/#{path[-2]}/#{path[-1]}"
|
19
19
|
|
20
|
-
app = git "config --get slotbox.app"
|
21
|
-
if app.nil?
|
22
|
-
raise(CommandFailed, "Cannot find Slotbox app name from git config")
|
23
|
-
end
|
24
|
-
|
25
20
|
process_data = action("Starting deploy", :success => "connected") do
|
26
21
|
process_data = api.put_app_deploy(app, remote).body
|
27
22
|
status(process_data["process"])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slotbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
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: 2013-01-
|
12
|
+
date: 2013-01-14 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Command-line tool to deploy and manage apps on Slotbox.
|
15
15
|
email: tom@tombh.co.uk
|