bfs-scp 0.7.0 → 0.7.5
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 +4 -4
- data/lib/bfs/bucket/scp.rb +7 -12
- data/spec/bfs/bucket/scp_spec.rb +9 -12
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce2b40891ff68887074207496ca807a6565c68d8d10ab4c442d0a8584a4137b8
|
4
|
+
data.tar.gz: c7c2fa83b17402d00f8a2b80107078266f9e92ab8225f2e0047cdfd1412509a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f69d3f9ed84f8dcd6be21633abe18ec98eed989ad71c5dfcf3134af9cd3e057ea0768a26bd402d55a3fec82616f26ad257f10cdb45d4d4c8773fc0c53a885cf
|
7
|
+
data.tar.gz: 5b53c05aec603396e18ac17276664d48540c675996a0238016e10d66ffdcee52e6e47069b67d464b40193a0075961fc69fab76861b766dc0c05b0e98ca7ccc21
|
data/lib/bfs/bucket/scp.rb
CHANGED
@@ -35,7 +35,7 @@ module BFS
|
|
35
35
|
@client = Net::SCP.start(host, nil, **opts.slice(*Net::SSH::VALID_OPTIONS))
|
36
36
|
|
37
37
|
if @prefix # rubocop:disable Style/GuardClause
|
38
|
-
@prefix = norm_path(@prefix)
|
38
|
+
@prefix = "#{norm_path(@prefix)}/"
|
39
39
|
mkdir_p abs_path(@prefix)
|
40
40
|
end
|
41
41
|
end
|
@@ -72,17 +72,10 @@ module BFS
|
|
72
72
|
full = full_path(path)
|
73
73
|
|
74
74
|
opts[:preserve] = true if perm && !opts.key?(:preserve)
|
75
|
-
|
75
|
+
BFS::TempWriter.new(path, encoding: encoding, perm: perm) do |temp_path|
|
76
76
|
mkdir_p File.dirname(full)
|
77
77
|
@client.upload!(temp_path, full, **opts)
|
78
|
-
end
|
79
|
-
return temp unless block
|
80
|
-
|
81
|
-
begin
|
82
|
-
yield temp
|
83
|
-
ensure
|
84
|
-
temp.close
|
85
|
-
end
|
78
|
+
end.perform(&block)
|
86
79
|
end
|
87
80
|
|
88
81
|
# Opens an existing file for reading
|
@@ -183,10 +176,12 @@ module BFS
|
|
183
176
|
end
|
184
177
|
end
|
185
178
|
|
186
|
-
BFS.register('scp', 'ssh') do |url, opts|
|
179
|
+
BFS.register('scp', 'ssh') do |url, opts, block|
|
180
|
+
prefix = BFS.norm_path(opts[:prefix] || url.path)
|
181
|
+
opts[:prefix] = prefix unless prefix.empty?
|
187
182
|
opts[:user] ||= CGI.unescape(url.user) if url.user
|
188
183
|
opts[:password] ||= CGI.unescape(url.password) if url.password
|
189
184
|
opts[:port] ||= url.port if url.port
|
190
185
|
|
191
|
-
BFS::Bucket::SCP.
|
186
|
+
BFS::Bucket::SCP.open(url.host, **opts, &block)
|
192
187
|
end
|
data/spec/bfs/bucket/scp_spec.rb
CHANGED
@@ -1,18 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
sandbox
|
4
|
-
run_spec = \
|
5
|
-
begin
|
6
|
-
Net::SCP.start sandbox[:host], nil, sandbox[:opts].merge(timeout: 1) do |scp|
|
7
|
-
scp.session.exec!('hostname')
|
8
|
-
end
|
9
|
-
true
|
10
|
-
rescue Net::SSH::Exception, Errno::ECONNREFUSED => e
|
11
|
-
warn "WARNING: unable to run #{File.basename __FILE__}: #{e.message}"
|
12
|
-
false
|
13
|
-
end
|
3
|
+
sandbox = { host: '127.0.0.1', opts: { port: 7022, user: 'root', password: 'root' } }.freeze
|
14
4
|
|
15
|
-
RSpec.describe BFS::Bucket::SCP,
|
5
|
+
RSpec.describe BFS::Bucket::SCP, scp: true do
|
16
6
|
context 'absolute' do
|
17
7
|
subject { described_class.new sandbox[:host], **sandbox[:opts].merge(prefix: SecureRandom.uuid) }
|
18
8
|
after { subject.close }
|
@@ -30,6 +20,13 @@ RSpec.describe BFS::Bucket::SCP, if: run_spec do
|
|
30
20
|
it 'should resolve from URL' do
|
31
21
|
bucket = BFS.resolve('scp://root:root@127.0.0.1:7022')
|
32
22
|
expect(bucket).to be_instance_of(described_class)
|
23
|
+
expect(bucket.instance_variable_get(:@prefix)).to be_nil
|
24
|
+
bucket.close
|
25
|
+
|
26
|
+
bucket = BFS.resolve('scp://root:root@127.0.0.1:7022/a/b/')
|
27
|
+
expect(bucket).to be_instance_of(described_class)
|
28
|
+
expect(bucket.instance_variable_get(:@prefix)).to eq('a/b/')
|
29
|
+
bucket.close
|
33
30
|
end
|
34
31
|
|
35
32
|
it 'should handle absolute and relative paths' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bfs-scp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dimitrij Denissenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bfs
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.7.
|
19
|
+
version: 0.7.5
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.7.
|
26
|
+
version: 0.7.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: net-scp
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|