osdn-cli 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +7 -2
- data/lib/osdn/cli/command/frs_upload.rb +21 -3
- data/lib/osdn/cli/command/relfile.rb +23 -3
- data/lib/osdn/cli/runner.rb +5 -1
- data/lib/osdn/cli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69b1dbd8621213ebdb69f94647d544e5cc7fa333
|
4
|
+
data.tar.gz: a52207094f25c588a729ea815dfb0e5004e2e86b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25e1712b2292dd07c6c757fcf0e12ac4640471b29d862ef6260c3a87e7f645da76e6fc6fe9f9f8d94c581bb4bf7b77d35b94b1aa91bcc7b81d8c352dd66da38d
|
7
|
+
data.tar.gz: a1e05a3cc8e2acd8a15b73a66fc607825887e306e05bd8ec9971815a1b2b5b180e4e35f794d382f8e082a6814552469b5359377accaf8db6144a67bb8673e778
|
data/ChangeLog
CHANGED
@@ -1,11 +1,16 @@
|
|
1
|
+
2016-07-27 Tatsuki Sugiura <sugi@nemui.org>
|
2
|
+
|
3
|
+
* Version 0.1.6
|
4
|
+
* frs_upload, relfile: Auto retry on upload error.
|
5
|
+
|
1
6
|
2016-07-20 Tatsuki Sugiura <sugi@nemui.org>
|
2
7
|
|
3
|
-
*
|
8
|
+
* Version 0.1.5
|
4
9
|
* frs_upload, relfile: Add bandwidth limit option.
|
5
10
|
|
6
11
|
2016-07-01 Tatsuki Sugiura <sugi@nemui.org>
|
7
12
|
|
8
|
-
*
|
13
|
+
* Version 0.1.4
|
9
14
|
* frs_upload, relfile: Add progress options.
|
10
15
|
|
11
16
|
2016-05-26 Tatsuki Sugiura <sugi@nemui.org>
|
@@ -199,9 +199,27 @@ module OSDN; module CLI; module Command
|
|
199
199
|
OSDN::CLI._show_progress = true
|
200
200
|
fio = file.open
|
201
201
|
logger.info "Starting upload #{file}..."
|
202
|
-
|
203
|
-
|
204
|
-
|
202
|
+
max_upload_tries = 5
|
203
|
+
upload_tries = 0
|
204
|
+
begin
|
205
|
+
upload_tries += 1
|
206
|
+
finfo = api.create_release_file target_proj, target_package(rdir), target_release(rdir), fio, visibility: @visibility
|
207
|
+
rescue OSDNClient::ApiError => e
|
208
|
+
if max_upload_tries - upload_tries <= 0
|
209
|
+
logger.error "Max upload attempts (#{max_upload_tries}) has been exceeded, give up!"
|
210
|
+
raise e
|
211
|
+
elsif [0, 100, 502].member?(e.code.to_i)
|
212
|
+
fio.rewind
|
213
|
+
logger.error "Upload error (#{e.code} #{e.message}), retrying (#{upload_tries}/#{max_upload_tries})..."
|
214
|
+
sleep 10
|
215
|
+
retry
|
216
|
+
else
|
217
|
+
raise e
|
218
|
+
end
|
219
|
+
ensure
|
220
|
+
OSDN::CLI._show_progress = false
|
221
|
+
fio.close
|
222
|
+
end
|
205
223
|
if digests.find { |type, dig| dig != finfo.send("digest_#{type}") }
|
206
224
|
logger.error "File digests are mismatch! Upload file #{file} may be broken! Please check."
|
207
225
|
else
|
@@ -121,9 +121,29 @@ module OSDN; module CLI; module Command
|
|
121
121
|
logger.level <= Logger::INFO && @show_progress != false || @show_progress and
|
122
122
|
OSDN::CLI._show_progress = true
|
123
123
|
logger.info "Starting upload #{file}..."
|
124
|
-
|
125
|
-
|
126
|
-
|
124
|
+
max_upload_tries = 5
|
125
|
+
upload_tries = 0
|
126
|
+
f = nil
|
127
|
+
begin
|
128
|
+
upload_tries += 1
|
129
|
+
f = api.create_release_file target_proj, target_package, target_release, fio, visibility: @visibility
|
130
|
+
rescue OSDNClient::ApiError => e
|
131
|
+
if max_upload_tries - upload_tries <= 0
|
132
|
+
logger.error "Max upload attempts (#{max_upload_tries}) has been exceeded, give up!"
|
133
|
+
raise e
|
134
|
+
elsif [0, 100, 502].member?(e.code.to_i)
|
135
|
+
fio.rewind
|
136
|
+
logger.error "Upload error (#{e.code} #{e.message}), retrying (#{upload_tries}/#{max_upload_tries})..."
|
137
|
+
sleep 10
|
138
|
+
retry
|
139
|
+
else
|
140
|
+
raise e
|
141
|
+
end
|
142
|
+
ensure
|
143
|
+
fio.close
|
144
|
+
OSDN::CLI._show_progress = false
|
145
|
+
end
|
146
|
+
|
127
147
|
if digests.find { |type, dig| dig != f.send("digest_#{type}") }
|
128
148
|
logger.error "File digests are mismatch! Upload file #{file} may be broken! Please check."
|
129
149
|
else
|
data/lib/osdn/cli/runner.rb
CHANGED
@@ -80,6 +80,10 @@ module OSDN
|
|
80
80
|
command = get_command_class(command_name).new(logger)
|
81
81
|
logger.debug "Run command #{command_name}"
|
82
82
|
begin
|
83
|
+
Signal.trap "INT" do
|
84
|
+
puts :INT
|
85
|
+
exit
|
86
|
+
end
|
83
87
|
command.run
|
84
88
|
rescue OSDNClient::ApiError => e
|
85
89
|
begin
|
@@ -92,7 +96,7 @@ module OSDN
|
|
92
96
|
logger.fatal "Command failed by ApiError: #{e.response_body}"
|
93
97
|
end
|
94
98
|
rescue
|
95
|
-
logger.fatal "Command failed: #{e.inspect}"
|
99
|
+
logger.fatal "Command failed: #{e.inspect} #{e.message} (#{e.code}): #{e.response_body} #{e.response_headers}"
|
96
100
|
end
|
97
101
|
end
|
98
102
|
end
|
data/lib/osdn/cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: osdn-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OSDN
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|