net-scp 1.0.1 → 1.0.2
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.
- data/CHANGELOG.rdoc +5 -0
- data/lib/net/scp.rb +6 -2
- data/lib/net/scp/upload.rb +1 -1
- data/lib/net/scp/version.rb +1 -1
- data/net-scp.gemspec +17 -45
- data/test/test_download.rb +14 -0
- data/test/test_upload.rb +14 -0
- metadata +8 -5
data/CHANGELOG.rdoc
CHANGED
data/lib/net/scp.rb
CHANGED
@@ -337,7 +337,7 @@ module Net
|
|
337
337
|
# (See Net::SCP::Upload and Net::SCP::Download).
|
338
338
|
def start_command(mode, local, remote, options={}, &callback)
|
339
339
|
session.open_channel do |channel|
|
340
|
-
command = "#{scp_command(mode, options)} #{remote}"
|
340
|
+
command = "#{scp_command(mode, options)} #{sanitize_file_name(remote)}"
|
341
341
|
channel.exec(command) do |ch, success|
|
342
342
|
if success
|
343
343
|
channel[:local ] = local
|
@@ -398,6 +398,10 @@ module Net
|
|
398
398
|
def progress_callback(channel, name, sent, total)
|
399
399
|
channel[:callback].call(channel, name, sent, total) if channel[:callback]
|
400
400
|
end
|
401
|
+
|
402
|
+
def sanitize_file_name(file_name)
|
403
|
+
file_name.gsub(/[ ]/) { |m| "\\#{m}" }
|
404
|
+
end
|
401
405
|
end
|
402
406
|
end
|
403
407
|
|
@@ -407,4 +411,4 @@ class Net::SSH::Connection::Session
|
|
407
411
|
def scp
|
408
412
|
@scp ||= Net::SCP.new(self)
|
409
413
|
end
|
410
|
-
end
|
414
|
+
end
|
data/lib/net/scp/upload.rb
CHANGED
@@ -10,7 +10,7 @@ module Net; class SCP
|
|
10
10
|
|
11
11
|
# The default read chunk size, if an explicit chunk-size is not specified
|
12
12
|
# by the client.
|
13
|
-
DEFAULT_CHUNK_SIZE =
|
13
|
+
DEFAULT_CHUNK_SIZE = 16384
|
14
14
|
|
15
15
|
# The start state for uploads. Simply sets up the upload scaffolding,
|
16
16
|
# sets the current item to upload, and jumps to #upload_current_state.
|
data/lib/net/scp/version.rb
CHANGED
data/net-scp.gemspec
CHANGED
@@ -1,62 +1,34 @@
|
|
1
|
-
|
2
|
-
# Gem::Specification for Net-scp-1.0.1
|
3
|
-
# Originally generated by Echoe
|
1
|
+
# -*- encoding: utf-8 -*-
|
4
2
|
|
5
3
|
Gem::Specification.new do |s|
|
6
4
|
s.name = %q{net-scp}
|
7
|
-
s.version = "1.0.
|
8
|
-
|
9
|
-
s.specification_version = 2 if s.respond_to? :specification_version=
|
5
|
+
s.version = "1.0.2"
|
10
6
|
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">=
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
12
8
|
s.authors = ["Jamis Buck"]
|
13
|
-
s.date = %q{
|
9
|
+
s.date = %q{2009-11-23}
|
14
10
|
s.description = %q{A pure Ruby implementation of the SCP client protocol}
|
15
11
|
s.email = %q{jamis@jamisbuck.org}
|
16
12
|
s.extra_rdoc_files = ["CHANGELOG.rdoc", "lib/net/scp/download.rb", "lib/net/scp/errors.rb", "lib/net/scp/upload.rb", "lib/net/scp/version.rb", "lib/net/scp.rb", "lib/uri/open-scp.rb", "lib/uri/scp.rb", "README.rdoc"]
|
17
13
|
s.files = ["CHANGELOG.rdoc", "lib/net/scp/download.rb", "lib/net/scp/errors.rb", "lib/net/scp/upload.rb", "lib/net/scp/version.rb", "lib/net/scp.rb", "lib/uri/open-scp.rb", "lib/uri/scp.rb", "Rakefile", "README.rdoc", "setup.rb", "test/common.rb", "test/test_all.rb", "test/test_download.rb", "test/test_scp.rb", "test/test_upload.rb", "Manifest", "net-scp.gemspec"]
|
18
|
-
s.has_rdoc = true
|
19
14
|
s.homepage = %q{http://net-ssh.rubyforge.org/scp}
|
20
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Net-scp", "--main", "README.rdoc"]
|
21
16
|
s.require_paths = ["lib"]
|
22
17
|
s.rubyforge_project = %q{net-ssh}
|
23
|
-
s.rubygems_version = %q{1.
|
18
|
+
s.rubygems_version = %q{1.3.5}
|
24
19
|
s.summary = %q{A pure Ruby implementation of the SCP client protocol}
|
25
20
|
s.test_files = ["test/test_all.rb"]
|
26
21
|
|
27
|
-
s.
|
28
|
-
|
22
|
+
if s.respond_to? :specification_version then
|
23
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
|
+
s.specification_version = 3
|
29
25
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
# abort "You'll need to have `echoe' installed to use Net::SCP's Rakefile"
|
40
|
-
# end
|
41
|
-
#
|
42
|
-
# version = Net::SCP::Version::STRING.dup
|
43
|
-
# if ENV['SNAPSHOT'].to_i == 1
|
44
|
-
# version << "." << Time.now.utc.strftime("%Y%m%d%H%M%S")
|
45
|
-
# end
|
46
|
-
#
|
47
|
-
# Echoe.new('net-scp', version) do |p|
|
48
|
-
# p.project = "net-ssh"
|
49
|
-
# p.changelog = "CHANGELOG.rdoc"
|
50
|
-
#
|
51
|
-
# p.author = "Jamis Buck"
|
52
|
-
# p.email = "jamis@jamisbuck.org"
|
53
|
-
# p.summary = "A pure Ruby implementation of the SCP client protocol"
|
54
|
-
# p.url = "http://net-ssh.rubyforge.org/scp"
|
55
|
-
#
|
56
|
-
# p.dependencies = ["net-ssh >=1.99.1"]
|
57
|
-
#
|
58
|
-
# p.need_zip = true
|
59
|
-
# p.include_rakefile = true
|
60
|
-
#
|
61
|
-
# p.rdoc_pattern = /^(lib|README.rdoc|CHANGELOG.rdoc)/
|
62
|
-
# end
|
26
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
|
+
s.add_runtime_dependency(%q<net-ssh>, [">= 1.99.1"])
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<net-ssh>, [">= 1.99.1"])
|
30
|
+
end
|
31
|
+
else
|
32
|
+
s.add_dependency(%q<net-ssh>, [">= 1.99.1"])
|
33
|
+
end
|
34
|
+
end
|
data/test/test_download.rb
CHANGED
@@ -12,6 +12,20 @@ class TestDownload < Net::SCP::TestCase
|
|
12
12
|
assert_equal "a" * 1234, file.io.string
|
13
13
|
end
|
14
14
|
|
15
|
+
def test_download_file_with_spaces_in_name_should_escape_remote_file_name
|
16
|
+
file = prepare_file("/path/to/local file.txt", "")
|
17
|
+
|
18
|
+
expect_scp_session "-f /path/to/remote\\ file.txt" do |channel|
|
19
|
+
channel.sends_ok
|
20
|
+
channel.gets_data "C0666 0 local file.txt\n"
|
21
|
+
channel.sends_ok
|
22
|
+
channel.gets_ok
|
23
|
+
channel.sends_ok
|
24
|
+
end
|
25
|
+
|
26
|
+
assert_scripted { scp.download!("/path/to/remote file.txt", "/path/to/local file.txt") }
|
27
|
+
end
|
28
|
+
|
15
29
|
def test_download_with_preserve_should_send_times
|
16
30
|
file = prepare_file("/path/to/local.txt", "a" * 1234, 0644, Time.at(1234567890, 123456), Time.at(12121212, 232323))
|
17
31
|
|
data/test/test_upload.rb
CHANGED
@@ -16,6 +16,20 @@ class TestUpload < Net::SCP::TestCase
|
|
16
16
|
assert_scripted { scp.upload!("/path/to/local.txt", "/path/to/remote.txt") }
|
17
17
|
end
|
18
18
|
|
19
|
+
def test_upload_file_with_spaces_in_name_should_escape_remote_file_name
|
20
|
+
prepare_file("/path/to/local file.txt", "")
|
21
|
+
|
22
|
+
expect_scp_session "-t /path/to/remote\\ file.txt" do |channel|
|
23
|
+
channel.gets_ok
|
24
|
+
channel.sends_data "C0666 0 local file.txt\n"
|
25
|
+
channel.gets_ok
|
26
|
+
channel.sends_ok
|
27
|
+
channel.gets_ok
|
28
|
+
end
|
29
|
+
|
30
|
+
assert_scripted { scp.upload!("/path/to/local file.txt", "/path/to/remote file.txt") }
|
31
|
+
end
|
32
|
+
|
19
33
|
def test_upload_file_with_preserve_should_send_times
|
20
34
|
prepare_file("/path/to/local.txt", "a" * 1234, 0666, Time.at(1234567890, 123456), Time.at(1234543210, 345678))
|
21
35
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-scp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamis Buck
|
@@ -9,11 +9,12 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-11-23 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: net-ssh
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
@@ -58,6 +59,8 @@ files:
|
|
58
59
|
- net-scp.gemspec
|
59
60
|
has_rdoc: true
|
60
61
|
homepage: http://net-ssh.rubyforge.org/scp
|
62
|
+
licenses: []
|
63
|
+
|
61
64
|
post_install_message:
|
62
65
|
rdoc_options:
|
63
66
|
- --line-numbers
|
@@ -78,14 +81,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
81
|
requirements:
|
79
82
|
- - ">="
|
80
83
|
- !ruby/object:Gem::Version
|
81
|
-
version: "
|
84
|
+
version: "1.2"
|
82
85
|
version:
|
83
86
|
requirements: []
|
84
87
|
|
85
88
|
rubyforge_project: net-ssh
|
86
|
-
rubygems_version: 1.
|
89
|
+
rubygems_version: 1.3.5
|
87
90
|
signing_key:
|
88
|
-
specification_version:
|
91
|
+
specification_version: 3
|
89
92
|
summary: A pure Ruby implementation of the SCP client protocol
|
90
93
|
test_files:
|
91
94
|
- test/test_all.rb
|