osdn-cli 0.0.2 → 0.0.3

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 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