uricp 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 37bb516638075a8d54d891f2d1049e5abe1197e4
4
+ data.tar.gz: 31d80850767fad7b32d5f9282031e6acdaa60b3f
5
+ SHA512:
6
+ metadata.gz: d137a74223d94356968ddaba23d2d855d0127fbea9f19fc2cee96a05c37f7900d3fe433fcccb3b6e12608d252174b9848fd882548319e794995c8828804bec2a
7
+ data.tar.gz: c49e4055788800047b66611d56de7fc0270e96bb88f2fccd0e7b0da7f329e739ca7daef0b672d44df94c3f816a9158204589c4f403f0e018e771c210193a90df
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- uricp (0.0.9)
4
+ uricp (0.0.10)
5
5
  filesize (= 0.0.2)
6
6
  methadone (~> 1.8.0)
7
7
  open4 (~> 1.3.0)
@@ -17,22 +17,22 @@ GEM
17
17
  builder (3.2.2)
18
18
  childprocess (0.5.6)
19
19
  ffi (~> 1.0, >= 1.0.11)
20
- cucumber (1.3.19)
20
+ cucumber (1.3.20)
21
21
  builder (>= 2.1.2)
22
22
  diff-lcs (>= 1.1.3)
23
23
  gherkin (~> 2.12)
24
24
  multi_json (>= 1.7.5, < 2.0)
25
25
  multi_test (>= 0.1.2)
26
26
  diff-lcs (1.2.5)
27
- ffi (1.9.8)
27
+ ffi (1.9.10)
28
28
  filesize (0.0.2)
29
29
  gherkin (2.12.2)
30
30
  multi_json (~> 1.3)
31
31
  inifile (1.1.0)
32
- json (1.8.2)
32
+ json (1.8.3)
33
33
  methadone (1.8.0)
34
34
  bundler
35
- multi_json (1.11.0)
35
+ multi_json (1.11.2)
36
36
  multi_test (0.1.2)
37
37
  open4 (1.3.4)
38
38
  rake (10.4.2)
@@ -45,14 +45,14 @@ GEM
45
45
  rspec-core (2.99.2)
46
46
  rspec-expectations (2.99.2)
47
47
  diff-lcs (>= 1.1.3, < 2.0)
48
- rspec-mocks (2.99.3)
48
+ rspec-mocks (2.99.4)
49
49
  sendfile (1.2.2)
50
50
 
51
51
  PLATFORMS
52
52
  ruby
53
53
 
54
54
  DEPENDENCIES
55
- aruba
55
+ aruba (~> 0.6.0)
56
56
  bundler (~> 1.7)
57
57
  cucumber (~> 1.3)
58
58
  inifile (~> 1.1)
data/bin/uricp CHANGED
@@ -98,6 +98,8 @@ class App
98
98
  "Compress output")
99
99
  on("--[no-]dry-run",
100
100
  "Show what would be run,", "but don't run the command")
101
+ on("--[no-]force",
102
+ "Always write sparsely")
101
103
  #Arguments
102
104
  arg :from_uri, "URI to copy from"
103
105
  arg :to_uri, "URI to copy to"
@@ -18,6 +18,7 @@ Feature: Documented Help
18
18
  |--segment|
19
19
  And the option "compress" should be documented which is negatable
20
20
  And the option "dry-run" should be documented which is negatable
21
+ And the option "force" should be documented which is negatable
21
22
  And the banner should document that this app's arguments are:
22
23
  |from_uri|which is required|
23
24
  |to_uri|which is required|
@@ -83,14 +83,14 @@ end
83
83
  When(/^I retrieve "([^"]*)" with options "([^"]*)" from container "([^"]*)" into "([^"]*)"$/) do |name, runoptions, container, target|
84
84
  url = File.join(@current_storage_url, container, name)
85
85
  steps %{
86
- When I successfully run `uricp #{runoptions} --auth-token #{@current_auth_token} #{url} #{target}`
86
+ When I successfully run `uricp --force #{runoptions} --auth-token #{@current_auth_token} #{url} #{target}`
87
87
  }
88
88
  end
89
89
 
90
90
  When(/^I retrieve "([^"]*)" from container "([^"]*)" into "([^"]*)" with a userid$/) do |name, container, target|
91
91
  url = File.join(@current_storage_url, container, name)
92
92
  steps %{
93
- When I successfully run `uricp --auth-user '#{@clientid}' --auth-key '#{@key}' #{url} #{target}`
93
+ When I successfully run `uricp --force --auth-user '#{@clientid}' --auth-key '#{@key}' #{url} #{target}`
94
94
  }
95
95
  end
96
96
 
@@ -99,7 +99,7 @@ When(/^I store "([^"]*)" into container "([^"]*)" from "([^"]*)" with a userid$/
99
99
  @current_name = name
100
100
  url = File.join(@current_storage_url, container, name)
101
101
  steps %{
102
- When I successfully run `uricp --auth-user '#{@clientid}' --auth-key '#{@key}' #{source} #{url}`
102
+ When I successfully run `uricp --force --auth-user '#{@clientid}' --auth-key '#{@key}' #{source} #{url}`
103
103
  }
104
104
  end
105
105
 
@@ -114,7 +114,7 @@ When(/^I store "([^"]*)" with options "([^"]*)" into container "([^"]*)" from "(
114
114
  @current_name = name
115
115
  url = File.join(@current_storage_url, container, name)
116
116
  steps %{
117
- When I successfully run `uricp #{runoptions} --auth-token #{@current_auth_token} #{source} #{url}`
117
+ When I successfully run `uricp --force #{runoptions} --auth-token #{@current_auth_token} #{source} #{url}`
118
118
  }
119
119
  end
120
120
 
@@ -123,7 +123,7 @@ When(/^I store "([^"]*)" with segment size "([^"]*)" into container "([^"]*)" fr
123
123
  @current_name = name
124
124
  url = File.join(@current_storage_url, container, name)
125
125
  steps %{
126
- When I successfully run `uricp --auth-user '#{@clientid}' --auth-key '#{@key}' --segment-size '#{segment_size}' #{source} #{url}`
126
+ When I successfully run `uricp --force --auth-user '#{@clientid}' --auth-key '#{@key}' --segment-size '#{segment_size}' #{source} #{url}`
127
127
  }
128
128
  end
129
129
 
@@ -132,7 +132,7 @@ When(/^I store "([^"]*)" with segment size "([^"]*)" and options "([^"]*)" into
132
132
  @current_name = name
133
133
  url = File.join(@current_storage_url, container, name)
134
134
  steps %{
135
- When I successfully run `uricp #{runoptions} --auth-user '#{@clientid}' --auth-key '#{@key}' --segment-size '#{segment_size}' #{source} #{url}`
135
+ When I successfully run `uricp --force #{runoptions} --auth-user '#{@clientid}' --auth-key '#{@key}' --segment-size '#{segment_size}' #{source} #{url}`
136
136
  }
137
137
  end
138
138
 
@@ -35,6 +35,10 @@ module Uricp::Strategy
35
35
  options['target-format']
36
36
  end
37
37
 
38
+ def always_write_sparse?
39
+ options['force']
40
+ end
41
+
38
42
  def lz4?(magic)
39
43
  magic.unpack('V') == [0x184D2204]
40
44
  end
@@ -0,0 +1,42 @@
1
+ module Uricp::Strategy
2
+
3
+ class PipedLocalDecompress
4
+
5
+ include Uricp::Strategy::Common
6
+
7
+ def appropriate?
8
+ case from.scheme
9
+ when 'pipe'
10
+ if raw_target? && lz4_source? && to.scheme == 'file'
11
+ if always_write_sparse?
12
+ return proposal
13
+ else
14
+ debug "#{self.class.name}: using safe sparse expansion via stream"
15
+ end
16
+ end
17
+ end
18
+ debug "#{self.class.name}: not appropriate"
19
+ false
20
+ end
21
+
22
+ def command
23
+ "lz4 -qd - #{to.path};"
24
+ end
25
+
26
+ def proposal
27
+ @proposed_options = options.dup
28
+ @proposed_options.delete('source-format')
29
+ if @proposed_options['target-format']
30
+ @proposed_options['source-format'] = :raw
31
+ if @proposed_options['source-format'] == @proposed_options['target-format']
32
+ @proposed_options.delete('source-format')
33
+ @proposed_options.delete('target-format')
34
+ end
35
+ end
36
+ @proposed_options['from_uri'] = @proposed_options['to_uri']
37
+ self
38
+ end
39
+
40
+ end
41
+
42
+ end
@@ -39,6 +39,8 @@ module Uricp::Strategy
39
39
  else
40
40
  raise
41
41
  end
42
+ rescue SocketError => e
43
+ raise SocketError, options['from_uri'].to_s+" inaccessible: "+e.message
42
44
  end
43
45
 
44
46
  def headers
@@ -30,6 +30,7 @@ module Uricp
30
30
  Strategy::PipedRemoteGet,
31
31
  Strategy::PipedCacheConvert,
32
32
  Strategy::PipedCache,
33
+ Strategy::PipedLocalDecompress,
33
34
  Strategy::PipedDecompress,
34
35
  Strategy::LocalConvert,
35
36
  Strategy::LocalLink,
data/lib/uricp/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Uricp
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  DEFAULT_SEGMENT_SIZE = "5 GiB"
4
4
  end
data/lib/uricp.rb CHANGED
@@ -11,6 +11,7 @@ require 'uricp/strategy/piped_local_put'
11
11
  require 'uricp/strategy/piped_remote_get'
12
12
  require 'uricp/strategy/piped_compress'
13
13
  require 'uricp/strategy/piped_decompress'
14
+ require 'uricp/strategy/piped_local_decompress'
14
15
  require 'uricp/strategy/piped_local_compress'
15
16
  require 'uricp/strategy/segmented_remote_put'
16
17
  require 'uricp/strategy/remote_put'
data/uricp.gemspec CHANGED
@@ -19,9 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.7"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
22
  spec.add_development_dependency('rdoc')
24
- spec.add_development_dependency('aruba')
23
+ spec.add_development_dependency('aruba', '~> 0.6.0')
25
24
  spec.add_development_dependency('cucumber', '~> 1.3')
26
25
  spec.add_development_dependency('rake')
27
26
  spec.add_dependency('methadone', '~> 1.8.0')
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uricp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
5
- prerelease:
4
+ version: 0.0.10
6
5
  platform: ruby
7
6
  authors:
8
7
  - Neil Wilson
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-05-26 00:00:00.000000000 Z
11
+ date: 2015-09-10 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,63 +20,41 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.7'
30
- - !ruby/object:Gem::Dependency
31
- name: rake
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '10.0'
38
- type: :development
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '10.0'
46
27
  - !ruby/object:Gem::Dependency
47
28
  name: rdoc
48
29
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
30
  requirements:
51
- - - ! '>='
31
+ - - '>='
52
32
  - !ruby/object:Gem::Version
53
33
  version: '0'
54
34
  type: :development
55
35
  prerelease: false
56
36
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
37
  requirements:
59
- - - ! '>='
38
+ - - '>='
60
39
  - !ruby/object:Gem::Version
61
40
  version: '0'
62
41
  - !ruby/object:Gem::Dependency
63
42
  name: aruba
64
43
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
44
  requirements:
67
- - - ! '>='
45
+ - - ~>
68
46
  - !ruby/object:Gem::Version
69
- version: '0'
47
+ version: 0.6.0
70
48
  type: :development
71
49
  prerelease: false
72
50
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
51
  requirements:
75
- - - ! '>='
52
+ - - ~>
76
53
  - !ruby/object:Gem::Version
77
- version: '0'
54
+ version: 0.6.0
78
55
  - !ruby/object:Gem::Dependency
79
56
  name: cucumber
80
57
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
58
  requirements:
83
59
  - - ~>
84
60
  - !ruby/object:Gem::Version
@@ -86,7 +62,6 @@ dependencies:
86
62
  type: :development
87
63
  prerelease: false
88
64
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
65
  requirements:
91
66
  - - ~>
92
67
  - !ruby/object:Gem::Version
@@ -94,23 +69,20 @@ dependencies:
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: rake
96
71
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
72
  requirements:
99
- - - ! '>='
73
+ - - '>='
100
74
  - !ruby/object:Gem::Version
101
75
  version: '0'
102
76
  type: :development
103
77
  prerelease: false
104
78
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
79
  requirements:
107
- - - ! '>='
80
+ - - '>='
108
81
  - !ruby/object:Gem::Version
109
82
  version: '0'
110
83
  - !ruby/object:Gem::Dependency
111
84
  name: methadone
112
85
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
86
  requirements:
115
87
  - - ~>
116
88
  - !ruby/object:Gem::Version
@@ -118,7 +90,6 @@ dependencies:
118
90
  type: :runtime
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
93
  requirements:
123
94
  - - ~>
124
95
  - !ruby/object:Gem::Version
@@ -126,7 +97,6 @@ dependencies:
126
97
  - !ruby/object:Gem::Dependency
127
98
  name: open4
128
99
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
100
  requirements:
131
101
  - - ~>
132
102
  - !ruby/object:Gem::Version
@@ -134,7 +104,6 @@ dependencies:
134
104
  type: :runtime
135
105
  prerelease: false
136
106
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
107
  requirements:
139
108
  - - ~>
140
109
  - !ruby/object:Gem::Version
@@ -142,7 +111,6 @@ dependencies:
142
111
  - !ruby/object:Gem::Dependency
143
112
  name: filesize
144
113
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
114
  requirements:
147
115
  - - '='
148
116
  - !ruby/object:Gem::Version
@@ -150,7 +118,6 @@ dependencies:
150
118
  type: :runtime
151
119
  prerelease: false
152
120
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
121
  requirements:
155
122
  - - '='
156
123
  - !ruby/object:Gem::Version
@@ -158,7 +125,6 @@ dependencies:
158
125
  - !ruby/object:Gem::Dependency
159
126
  name: sendfile
160
127
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
128
  requirements:
163
129
  - - ~>
164
130
  - !ruby/object:Gem::Version
@@ -166,7 +132,6 @@ dependencies:
166
132
  type: :runtime
167
133
  prerelease: false
168
134
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
135
  requirements:
171
136
  - - ~>
172
137
  - !ruby/object:Gem::Version
@@ -174,7 +139,6 @@ dependencies:
174
139
  - !ruby/object:Gem::Dependency
175
140
  name: rspec
176
141
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
142
  requirements:
179
143
  - - ~>
180
144
  - !ruby/object:Gem::Version
@@ -182,7 +146,6 @@ dependencies:
182
146
  type: :development
183
147
  prerelease: false
184
148
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
149
  requirements:
187
150
  - - ~>
188
151
  - !ruby/object:Gem::Version
@@ -190,7 +153,6 @@ dependencies:
190
153
  - !ruby/object:Gem::Dependency
191
154
  name: inifile
192
155
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
156
  requirements:
195
157
  - - ~>
196
158
  - !ruby/object:Gem::Version
@@ -198,7 +160,6 @@ dependencies:
198
160
  type: :development
199
161
  prerelease: false
200
162
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
163
  requirements:
203
164
  - - ~>
204
165
  - !ruby/object:Gem::Version
@@ -252,6 +213,7 @@ files:
252
213
  - lib/uricp/strategy/piped_compress.rb
253
214
  - lib/uricp/strategy/piped_decompress.rb
254
215
  - lib/uricp/strategy/piped_local_compress.rb
216
+ - lib/uricp/strategy/piped_local_decompress.rb
255
217
  - lib/uricp/strategy/piped_local_get.rb
256
218
  - lib/uricp/strategy/piped_local_put.rb
257
219
  - lib/uricp/strategy/piped_remote_get.rb
@@ -265,27 +227,26 @@ files:
265
227
  homepage: ''
266
228
  licenses:
267
229
  - gplv3
230
+ metadata: {}
268
231
  post_install_message:
269
232
  rdoc_options: []
270
233
  require_paths:
271
234
  - lib
272
235
  required_ruby_version: !ruby/object:Gem::Requirement
273
- none: false
274
236
  requirements:
275
- - - ! '>='
237
+ - - '>='
276
238
  - !ruby/object:Gem::Version
277
239
  version: '0'
278
240
  required_rubygems_version: !ruby/object:Gem::Requirement
279
- none: false
280
241
  requirements:
281
- - - ! '>='
242
+ - - '>='
282
243
  - !ruby/object:Gem::Version
283
244
  version: '0'
284
245
  requirements: []
285
246
  rubyforge_project:
286
- rubygems_version: 1.8.23
247
+ rubygems_version: 2.4.8
287
248
  signing_key:
288
- specification_version: 3
249
+ specification_version: 4
289
250
  summary: Copy one URL to another with optional cacheing
290
251
  test_files:
291
252
  - features/auth_download.feature