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 +4 -4
- data/lib/osdn/cli/command/frs_upload.rb +52 -2
- 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: 442f23ffc9e17733a2fe7270c3a88406ae35f921
|
4
|
+
data.tar.gz: 8b31d0791ab11179aa4a76931a6cf605b42373d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
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
|
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.0.
|
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-
|
11
|
+
date: 2016-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|