osdn-cli 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4aa4a8b62253ab0ed65d450c8d525306d2e2d99a
4
- data.tar.gz: 6d7f94ca2a2b67534dab98e754d84e36d187f41e
3
+ metadata.gz: 442f23ffc9e17733a2fe7270c3a88406ae35f921
4
+ data.tar.gz: 8b31d0791ab11179aa4a76931a6cf605b42373d3
5
5
  SHA512:
6
- metadata.gz: f027851b7fe92c2bc9a18a84c573acb661f3726daec977245650d50f7d768670acb8f8d00a25dd531a949498c60109625cc5ccf2d402c6fa528958fb6fc924e1
7
- data.tar.gz: a12bb95e117c22e5cb61c5d884cdea10c3a881f0b3ccd15a6e1fa958d1398285d04a7276050b7f74ed04455d9a4ad09ccbb1144be72c48398e057b607c27f9ab
6
+ metadata.gz: c749f17520f2dafeb21c820c530c94cddf38ccf01f35112ff50cb1c40134d281bc8e819772b23142f03fc68a77d54d46e25c1fc8e29fdcb620f32d78d0be78fb
7
+ data.tar.gz: d1032019115a40a9a1f549c9c9939cd546e4a8c6803ce1f3c3ec75a16ee0157fa1519f5957f4131b38a8a417c666d418b69a67ae434ad2c4d210561cf3a766dd
@@ -1,4 +1,45 @@
1
1
  require 'digest'
2
+ require 'ethon'
3
+
4
+ module OSDN; module CLI; module Command
5
+ class FrsUpload < Base
6
+ @@_show_progress = false
7
+ def self._show_progress
8
+ @@_show_progress
9
+ end
10
+ def self._show_progress=(v)
11
+ need_reset = (!!@@_show_progress != !!v)
12
+ @@_show_progress = v
13
+ need_reset and _reset_all_typhoeus_pool
14
+ end
15
+
16
+ def self._reset_all_typhoeus_pool
17
+ first_easyid = nil
18
+ while true
19
+ e = Typhoeus::Pool.get
20
+ Typhoeus::Pool.release(e)
21
+ e.__id__ == first_easyid and break
22
+ first_easyid ||= e.__id__
23
+ end
24
+ end
25
+ end
26
+ end; end; end
27
+
28
+ module Ethon
29
+ class Easy
30
+ module Callbacks
31
+ alias_method :set_callbacks_orig, :set_callbacks
32
+ def set_callbacks
33
+ set_callbacks_orig
34
+ if OSDN::CLI::Command::FrsUpload._show_progress
35
+ Curl.set_option(:noprogress, false, handle)
36
+ else
37
+ Curl.set_option(:noprogress, true, handle)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
2
43
 
3
44
  module OSDN; module CLI; module Command
4
45
  class FrsUpload < Base
@@ -80,6 +121,7 @@ module OSDN; module CLI; module Command
80
121
  next
81
122
  end
82
123
 
124
+ logger.debug "Calculating digest for #{file}..."
83
125
  digests = {
84
126
  sha256: hexdigest(Digest::SHA256, file),
85
127
  sha1: hexdigest(Digest::SHA1, file),
@@ -95,11 +137,18 @@ module OSDN; module CLI; module Command
95
137
  if @dry_run
96
138
  finfo = Hashie::Mash.new id: '(dry-run)', url: '(dry-run)'
97
139
  else
98
- # TODO: show progress bar!
140
+ logger.level <= Logger::INFO and
141
+ self.class._show_progress = true
99
142
  fio = file.open
143
+ logger.info "Starting upload #{file}..."
100
144
  finfo = api.create_release_file target_proj, target_package(rdir), target_release(rdir), fio, visibility: @visibility
101
145
  fio.close
102
- logger.info "Upload completed."
146
+ self.class._show_progress = false
147
+ if digests.find { |type, dig| dig != finfo.send("digest_#{type}") }
148
+ logger.error "File digests are mismatch! Upload file #{file} may be broken! Please check."
149
+ else
150
+ logger.info "Upload completed."
151
+ end
103
152
  end
104
153
  $stdout.puts "New file '#{file}' has been uploaded; #{finfo.url}"
105
154
  end
@@ -153,5 +202,6 @@ module OSDN; module CLI; module Command
153
202
  fio.close
154
203
  dig.hexdigest
155
204
  end
205
+
156
206
  end
157
207
  end; end; end
@@ -1,5 +1,5 @@
1
1
  module OSDN
2
2
  module CLI
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
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.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - OSDN
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-03-14 00:00:00.000000000 Z
11
+ date: 2016-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler