net-scp 1.2.1 → 1.2.2.rc2
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 +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +6 -0
- data/.travis.yml +4 -3
- data/Gemfile +15 -0
- data/README.rdoc +1 -1
- data/Rakefile +48 -26
- data/lib/net/scp.rb +8 -8
- data/lib/net/scp/download.rb +5 -5
- data/lib/net/scp/version.rb +63 -13
- data/net-scp-public_cert.pem +21 -0
- data/net-scp.gemspec +35 -56
- metadata +50 -59
- metadata.gz.sig +1 -1
- data/gem-public_cert.pem +0 -20
- data/test/common.rb +0 -153
- data/test/test_all.rb +0 -3
- data/test/test_download.rb +0 -197
- data/test/test_scp.rb +0 -60
- data/test/test_upload.rb +0 -269
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 27dd49f9e8b959458486f4f0b53f64277f5391df771d22acc12979a931ca9b61
|
4
|
+
data.tar.gz: 6f3bdee6b3229534c6f8f6c36162e261c7548f5b0d20ac6ef9ac19198856efe5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7bc0c7dc88dba9607d57656a77ab0b0814a68f6c666c62399042a222bc85b1cc7b784642ccc96fb2449b91cf93c37bfe5de016133071d1e2d5355b49f0d6edad
|
7
|
+
data.tar.gz: 6aead6bae2577284ce351ae334a57bcd795b12cd751640f8c2a69c02fd6836da18778720819f2c163716f8920f539aff6191ede6349617f4a4903fb0cd98af23
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.travis.yml
CHANGED
data/Gemfile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in mygem.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
# TODO: add to gemspec
|
7
|
+
gem "bundler", "~> 1.11"
|
8
|
+
gem "rake", "~> 12.0"
|
9
|
+
|
10
|
+
gem 'byebug', group: %i[development test] if !Gem.win_platform? && RUBY_ENGINE == "ruby"
|
11
|
+
|
12
|
+
if ENV["CI"]
|
13
|
+
gem 'codecov', require: false, group: :test
|
14
|
+
gem 'simplecov', require: false, group: :test
|
15
|
+
end
|
data/README.rdoc
CHANGED
@@ -42,7 +42,7 @@ In a nutshell:
|
|
42
42
|
data = Net::SCP::download!("remote.host.com", "username", "/remote/path")
|
43
43
|
|
44
44
|
# use a persistent connection to transfer files
|
45
|
-
Net::SCP.start("remote.host.com", "username", :
|
45
|
+
Net::SCP.start("remote.host.com", "username", :password => "password") do |scp|
|
46
46
|
# upload a file to a remote server
|
47
47
|
scp.upload! "/local/path", "/remote/path"
|
48
48
|
|
data/Rakefile
CHANGED
@@ -2,40 +2,64 @@ require "rubygems"
|
|
2
2
|
require "rake"
|
3
3
|
require "rake/clean"
|
4
4
|
require "rdoc/task"
|
5
|
+
require "bundler/gem_tasks"
|
5
6
|
|
6
|
-
|
7
|
+
desc "When releasing make sure NET_SSH_BUILDGEM_SIGNED is set"
|
8
|
+
task :check_NET_SSH_BUILDGEM_SIGNED do
|
9
|
+
raise "NET_SSH_BUILDGEM_SIGNED should be set to release" unless ENV['NET_SSH_BUILDGEM_SIGNED']
|
10
|
+
end
|
11
|
+
|
12
|
+
Rake::Task[:release].enhance [:check_NET_SSH_BUILDGEM_SIGNED]
|
13
|
+
Rake::Task[:release].prerequisites.unshift(:check_NET_SSH_BUILDGEM_SIGNED)
|
14
|
+
|
15
|
+
task default: ["build"]
|
7
16
|
CLEAN.include [ 'pkg', 'rdoc' ]
|
8
17
|
name = "net-scp"
|
9
18
|
|
10
|
-
|
11
|
-
|
12
|
-
|
19
|
+
require_relative "lib/net/scp/version"
|
20
|
+
version = Net::SCP::Version::CURRENT
|
21
|
+
|
22
|
+
namespace :cert do
|
23
|
+
desc "Update public cert from private - only run if public is expired"
|
24
|
+
task :update_public_when_expired do
|
25
|
+
require 'openssl'
|
26
|
+
require 'time'
|
27
|
+
raw = File.read "net-scp-public_cert.pem"
|
28
|
+
certificate = OpenSSL::X509::Certificate.new raw
|
29
|
+
raise Exception, "Not yet expired: #{certificate.not_after}" unless certificate.not_after < Time.now
|
30
|
+
sh "gem cert --build netssh@solutious.com --days 365*5 --private-key /mnt/gem/net-ssh-private_key.pem"
|
31
|
+
sh "mv gem-public_cert.pem net-scp-public_cert.pem"
|
32
|
+
sh "gem cert --add net-scp-public_cert.pem"
|
33
|
+
end
|
34
|
+
end
|
13
35
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
36
|
+
if false
|
37
|
+
begin
|
38
|
+
require "jeweler"
|
39
|
+
Jeweler::Tasks.new do |s|
|
40
|
+
s.version = version
|
41
|
+
s.name = name
|
42
|
+
s.rubyforge_project = s.name
|
43
|
+
s.summary = "A pure Ruby implementation of the SCP client protocol"
|
44
|
+
s.description = s.summary
|
45
|
+
s.email = "net-ssh@solutious.com"
|
46
|
+
s.homepage = "https://github.com/net-ssh/net-scp"
|
47
|
+
s.authors = ["Jamis Buck", "Delano Mandelbaum"]
|
25
48
|
|
26
|
-
|
49
|
+
s.add_dependency 'net-ssh', ">=2.6.5"
|
27
50
|
|
28
|
-
|
29
|
-
|
51
|
+
s.add_development_dependency 'test-unit'
|
52
|
+
s.add_development_dependency 'mocha'
|
30
53
|
|
31
|
-
|
54
|
+
s.license = "MIT"
|
32
55
|
|
33
|
-
|
34
|
-
|
56
|
+
s.signing_key = File.join('/mnt/gem/', 'gem-private_key.pem')
|
57
|
+
s.cert_chain = ['gem-public_cert.pem']
|
58
|
+
end
|
59
|
+
Jeweler::GemcutterTasks.new
|
60
|
+
rescue LoadError
|
61
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
35
62
|
end
|
36
|
-
Jeweler::GemcutterTasks.new
|
37
|
-
rescue LoadError
|
38
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
39
63
|
end
|
40
64
|
|
41
65
|
require 'rake/testtask'
|
@@ -56,5 +80,3 @@ RDoc::Task.new do |rdoc|
|
|
56
80
|
rdoc.rdoc_files.include(file) if File.exists?(file)
|
57
81
|
}
|
58
82
|
end
|
59
|
-
|
60
|
-
|
data/lib/net/scp.rb
CHANGED
@@ -194,7 +194,7 @@ module Net
|
|
194
194
|
include Net::SSH::Loggable
|
195
195
|
include Upload, Download
|
196
196
|
|
197
|
-
# Starts up a new SSH connection and instantiates a new SCP session on
|
197
|
+
# Starts up a new SSH connection and instantiates a new SCP session on
|
198
198
|
# top of it. If a block is given, the SCP session is yielded, and the
|
199
199
|
# SSH session is closed automatically when the block terminates. If no
|
200
200
|
# block is given, the SCP session is returned.
|
@@ -293,7 +293,7 @@ module Net
|
|
293
293
|
# * :preserve - the atime and mtime of the file should be preserved.
|
294
294
|
# * :verbose - the process should result in verbose output on the server
|
295
295
|
# end (useful for debugging).
|
296
|
-
#
|
296
|
+
#
|
297
297
|
# This method will return immediately, returning the Net::SSH::Connection::Channel
|
298
298
|
# object that will support the download. To wait for the download to finish,
|
299
299
|
# you can either call the #wait method on the channel, or otherwise run
|
@@ -343,7 +343,7 @@ module Net
|
|
343
343
|
# (See Net::SCP::Upload and Net::SCP::Download).
|
344
344
|
def start_command(mode, local, remote, options={}, &callback)
|
345
345
|
session.open_channel do |channel|
|
346
|
-
|
346
|
+
|
347
347
|
if options[:shell]
|
348
348
|
escaped_file = shellescape(remote).gsub(/'/) { |m| "'\\''" }
|
349
349
|
command = "#{options[:shell]} -c '#{scp_command(mode, options)} #{escaped_file}'"
|
@@ -362,10 +362,10 @@ module Net
|
|
362
362
|
channel[:stack ] = []
|
363
363
|
channel[:error_string] = ''
|
364
364
|
|
365
|
-
channel.on_close { |
|
366
|
-
channel.on_data { |
|
367
|
-
channel.on_extended_data { |
|
368
|
-
channel.on_request("exit-status") { |
|
365
|
+
channel.on_close { |ch2| send("#{channel[:state]}_state", channel); raise Net::SCP::Error, "SCP did not finish successfully (#{channel[:exit]}): #{channel[:error_string]}" if channel[:exit] != 0 }
|
366
|
+
channel.on_data { |ch2, data| channel[:buffer].append(data) }
|
367
|
+
channel.on_extended_data { |ch2, type, data| debug { data.chomp } }
|
368
|
+
channel.on_request("exit-status") { |ch2, data| channel[:exit] = data.read_long }
|
369
369
|
channel.on_process { send("#{channel[:state]}_state", channel) }
|
370
370
|
else
|
371
371
|
channel.close
|
@@ -395,7 +395,7 @@ module Net
|
|
395
395
|
def await_response_state(channel)
|
396
396
|
return if channel[:buffer].available == 0
|
397
397
|
c = channel[:buffer].read_byte
|
398
|
-
raise "#{c.chr}#{channel[:buffer].read}" if c != 0
|
398
|
+
raise Net::SCP::Error, "#{c.chr}#{channel[:buffer].read}" if c != 0
|
399
399
|
channel[:next], channel[:state] = nil, channel[:next]
|
400
400
|
send("#{channel[:state]}_state", channel)
|
401
401
|
end
|
data/lib/net/scp/download.rb
CHANGED
@@ -20,7 +20,7 @@ module Net; class SCP
|
|
20
20
|
elsif channel[:local].respond_to?(:write) && channel[:options][:preserve]
|
21
21
|
lwarn { ":preserve option is ignored when downloading to an in-memory buffer" }
|
22
22
|
channel[:options].delete(:preserve)
|
23
|
-
elsif channel[:options][:recursive] && !File.
|
23
|
+
elsif channel[:options][:recursive] && !File.exist?(channel[:local])
|
24
24
|
Dir.mkdir(channel[:local])
|
25
25
|
end
|
26
26
|
|
@@ -128,9 +128,9 @@ module Net; class SCP
|
|
128
128
|
|
129
129
|
channel[:local] = File.join(channel[:local], directive[:name])
|
130
130
|
|
131
|
-
if File.
|
132
|
-
raise "#{channel[:local]} already exists and is not a directory"
|
133
|
-
elsif !File.
|
131
|
+
if File.exist?(channel[:local]) && !File.directory?(channel[:local])
|
132
|
+
raise Net::SCP::Error, "#{channel[:local]} already exists and is not a directory"
|
133
|
+
elsif !File.exist?(channel[:local])
|
134
134
|
Dir.mkdir(channel[:local], directive[:mode] | 0700)
|
135
135
|
end
|
136
136
|
|
@@ -162,4 +162,4 @@ module Net; class SCP
|
|
162
162
|
end
|
163
163
|
end
|
164
164
|
|
165
|
-
end; end
|
165
|
+
end; end
|
data/lib/net/scp/version.rb
CHANGED
@@ -1,18 +1,68 @@
|
|
1
|
-
|
1
|
+
module Net
|
2
|
+
module SCP
|
3
|
+
# A class for describing the current version of a library. The version
|
4
|
+
# consists of three parts: the +major+ number, the +minor+ number, and the
|
5
|
+
# +tiny+ (or +patch+) number.
|
6
|
+
#
|
7
|
+
# Two Version instances may be compared, so that you can test that a version
|
8
|
+
# of a library is what you require:
|
9
|
+
#
|
10
|
+
# require 'net/scp/version'
|
11
|
+
#
|
12
|
+
# if Net::SCP::Version::CURRENT < Net::SCP::Version[2,1,0]
|
13
|
+
# abort "your software is too old!"
|
14
|
+
# end
|
15
|
+
class Version
|
16
|
+
include Comparable
|
2
17
|
|
3
|
-
|
18
|
+
# A convenience method for instantiating a new Version instance with the
|
19
|
+
# given +major+, +minor+, and +tiny+ components.
|
20
|
+
def self.[](major, minor, tiny, pre = nil)
|
21
|
+
new(major, minor, tiny, pre)
|
22
|
+
end
|
4
23
|
|
5
|
-
|
6
|
-
class Version < Net::SSH::Version
|
7
|
-
MAJOR = 1
|
8
|
-
MINOR = 2
|
9
|
-
TINY = 1
|
24
|
+
attr_reader :major, :minor, :tiny
|
10
25
|
|
11
|
-
|
12
|
-
|
26
|
+
# Create a new Version object with the given components.
|
27
|
+
def initialize(major, minor, tiny, pre = nil)
|
28
|
+
@major, @minor, @tiny, @pre = major, minor, tiny, pre
|
29
|
+
end
|
13
30
|
|
14
|
-
|
15
|
-
|
16
|
-
|
31
|
+
# Compare this version to the given +version+ object.
|
32
|
+
def <=>(version)
|
33
|
+
to_i <=> version.to_i
|
34
|
+
end
|
35
|
+
|
36
|
+
# Converts this version object to a string, where each of the three
|
37
|
+
# version components are joined by the '.' character. E.g., 2.0.0.
|
38
|
+
def to_s
|
39
|
+
@to_s ||= [@major, @minor, @tiny, @pre].compact.join(".")
|
40
|
+
end
|
41
|
+
|
42
|
+
# Converts this version to a canonical integer that may be compared
|
43
|
+
# against other version objects.
|
44
|
+
def to_i
|
45
|
+
@to_i ||= @major * 1_000_000 + @minor * 1_000 + @tiny
|
46
|
+
end
|
47
|
+
|
48
|
+
# The major component of this version of the Net::SSH library
|
49
|
+
MAJOR = 1
|
50
|
+
|
51
|
+
# The minor component of this version of the Net::SSH library
|
52
|
+
MINOR = 2
|
17
53
|
|
18
|
-
|
54
|
+
# The tiny component of this version of the Net::SSH library
|
55
|
+
TINY = 2
|
56
|
+
|
57
|
+
# The prerelease component of this version of the Net::SSH library
|
58
|
+
# nil allowed
|
59
|
+
PRE = "rc2"
|
60
|
+
|
61
|
+
# The current version of the Net::SSH library as a Version instance
|
62
|
+
CURRENT = new(*[MAJOR, MINOR, TINY, PRE].compact)
|
63
|
+
|
64
|
+
# The current version of the Net::SSH library as a String
|
65
|
+
STRING = CURRENT.to_s
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZuZXRz
|
3
|
+
c2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZFgNj
|
4
|
+
b20wHhcNMTgwNjA0MTA0OTQwWhcNMTkwNjA0MTA0OTQwWjBBMQ8wDQYDVQQDDAZu
|
5
|
+
ZXRzc2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZ
|
6
|
+
FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGJ4TbZ9H+qZ08
|
7
|
+
pQfJhPJTHaDCyQvCsKTFrL5O9z3tllQ7B/zksMMM+qFBpNYu9HCcg4yBATacE/PB
|
8
|
+
qVVyUrpr6lbH/XwoN5ljXm+bdCfmnjZvTCL2FTE6o+bcnaF0IsJyC0Q2B1fbWdXN
|
9
|
+
6Off1ZWoUk6We2BIM1bn6QJLxBpGyYhvOPXsYoqSuzDf2SJDDsWFZ8kV5ON13Ohm
|
10
|
+
JbBzn0oD8HF8FuYOewwsC0C1q4w7E5GtvHcQ5juweS7+RKsyDcVcVrLuNzoGRttS
|
11
|
+
KP4yMn+TzaXijyjRg7gECfJr3TGASaA4bQsILFGG5dAWcwO4OMrZedR7SHj/o0Kf
|
12
|
+
3gL7P0axAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
13
|
+
BBQF8qLA7Z4zg0SJGtUbv3eoQ8tjIzAfBgNVHREEGDAWgRRuZXRzc2hAc29sdXRp
|
14
|
+
b3VzLmNvbTAfBgNVHRIEGDAWgRRuZXRzc2hAc29sdXRpb3VzLmNvbTANBgkqhkiG
|
15
|
+
9w0BAQsFAAOCAQEAXnNaYXWVr/sCsfZdza+yBBOobYPgjOgDRfqNO2YX8RFEyDNB
|
16
|
+
AxBCQIF4OeUaoMbTQTVh24MwaDHpDTgqBAEfSs9h41lZewQaw4QUGJ6yxNVzO194
|
17
|
+
2vYohv9vHpodBukIpUFGk40vQq8nOq2MzVyCb911wnt5d0ZQg+UJf5tdMYvRvATa
|
18
|
+
F/dkTaqhq3wq/JJRghq8fJUqWN5aBtMQb/61z5J3mKAUJsUN2/VdDph2fRPDpECa
|
19
|
+
uWREKzWwXbaB96/ZyzoyP7FsQBLgdDL++g2nF0neCENc5Wj5IlQZiH0a2+X3jAgm
|
20
|
+
7UnoE3CP9Tk5GHVUina5gPyzl0VI4s4pYCPehQ==
|
21
|
+
-----END CERTIFICATE-----
|
data/net-scp.gemspec
CHANGED
@@ -1,69 +1,48 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
1
|
|
6
|
-
|
7
|
-
s.name = "net-scp"
|
8
|
-
s.version = "1.2.1"
|
2
|
+
require_relative 'lib/net/scp/version'
|
9
3
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
4
|
+
Gem::Specification.new do |spec|
|
5
|
+
spec.name = "net-scp"
|
6
|
+
spec.version = Net::SCP::Version::STRING
|
7
|
+
spec.authors = ["Jamis Buck", "Delano Mandelbaum", "Mikl\u{f3}s Fazekas"]
|
8
|
+
spec.email = ["net-ssh@solutious.com"]
|
9
|
+
|
10
|
+
if ENV['NET_SSH_BUILDGEM_SIGNED']
|
11
|
+
spec.cert_chain = ["net-scp-public_cert.pem"]
|
12
|
+
spec.signing_key = "/mnt/gem/net-ssh-private_key.pem"
|
13
|
+
end
|
14
|
+
|
15
|
+
spec.summary = %q{A pure Ruby implementation of the SCP client protocol.}
|
16
|
+
spec.description = %q{A pure Ruby implementation of the SCP client protocol}
|
17
|
+
spec.homepage = "https://github.com/net-ssh/net-scp"
|
18
|
+
spec.license = "MIT"
|
19
|
+
spec.required_rubygems_version = Gem::Requirement.new(">= 0") if spec.respond_to? :required_rubygems_version=
|
20
|
+
|
21
|
+
spec.extra_rdoc_files = [
|
17
22
|
"LICENSE.txt",
|
18
23
|
"README.rdoc"
|
19
24
|
]
|
20
|
-
s.files = [
|
21
|
-
".travis.yml",
|
22
|
-
"CHANGES.txt",
|
23
|
-
"LICENSE.txt",
|
24
|
-
"Manifest",
|
25
|
-
"README.rdoc",
|
26
|
-
"Rakefile",
|
27
|
-
"gem-public_cert.pem",
|
28
|
-
"lib/net/scp.rb",
|
29
|
-
"lib/net/scp/download.rb",
|
30
|
-
"lib/net/scp/errors.rb",
|
31
|
-
"lib/net/scp/upload.rb",
|
32
|
-
"lib/net/scp/version.rb",
|
33
|
-
"lib/uri/open-scp.rb",
|
34
|
-
"lib/uri/scp.rb",
|
35
|
-
"net-scp.gemspec",
|
36
|
-
"setup.rb",
|
37
|
-
"test/common.rb",
|
38
|
-
"test/test_all.rb",
|
39
|
-
"test/test_download.rb",
|
40
|
-
"test/test_scp.rb",
|
41
|
-
"test/test_upload.rb"
|
42
|
-
]
|
43
|
-
s.homepage = "https://github.com/net-ssh/net-scp"
|
44
|
-
s.licenses = ["MIT"]
|
45
|
-
s.require_paths = ["lib"]
|
46
|
-
s.rubyforge_project = "net-scp"
|
47
|
-
s.rubygems_version = "1.8.23"
|
48
|
-
s.signing_key = "/mnt/gem/gem-private_key.pem"
|
49
|
-
s.summary = "A pure Ruby implementation of the SCP client protocol"
|
50
25
|
|
51
|
-
|
52
|
-
|
26
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
+
spec.bindir = "exe"
|
28
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
|
+
spec.require_paths = ["lib"]
|
30
|
+
|
31
|
+
if spec.respond_to? :specification_version then
|
32
|
+
spec.specification_version = 3
|
53
33
|
|
54
34
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
|
-
|
56
|
-
|
57
|
-
|
35
|
+
spec.add_runtime_dependency(%q<net-ssh>, [">= 2.6.5", "< 5.0.0"])
|
36
|
+
spec.add_development_dependency(%q<test-unit>, [">= 0"])
|
37
|
+
spec.add_development_dependency(%q<mocha>, [">= 0"])
|
58
38
|
else
|
59
|
-
|
60
|
-
|
61
|
-
|
39
|
+
spec.add_dependency(%q<net-ssh>, [">= 2.6.5", "< 5.0.0"])
|
40
|
+
spec.add_dependency(%q<test-unit>, [">= 0"])
|
41
|
+
spec.add_dependency(%q<mocha>, [">= 0"])
|
62
42
|
end
|
63
43
|
else
|
64
|
-
|
65
|
-
|
66
|
-
|
44
|
+
spec.add_dependency(%q<net-ssh>, [">= 2.6.5", "< 5.0.0"])
|
45
|
+
spec.add_dependency(%q<test-unit>, [">= 0"])
|
46
|
+
spec.add_dependency(%q<mocha>, [">= 0"])
|
67
47
|
end
|
68
48
|
end
|
69
|
-
|
metadata
CHANGED
@@ -1,108 +1,104 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-scp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.2.rc2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jamis Buck
|
9
8
|
- Delano Mandelbaum
|
9
|
+
- Miklós Fazekas
|
10
10
|
autorequire:
|
11
|
-
bindir:
|
11
|
+
bindir: exe
|
12
12
|
cert_chain:
|
13
|
-
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
QzdvRFI5Q0dFQlpDCi9DaSsrWkVoL1FSOXF5MTFBSGNpRUlYbk5reXRpZHla
|
37
|
-
dExyNE1XaHRiVjQ2OHk2c2hwUFlkS1UvdUNJTlNndnQKRnBNQU01Tml0OEw4
|
38
|
-
bkh3ZjNJSVVQZzdsc01DUnpPa1EvRkQ4N0JJM1YzU25GTm9UQ2RHZ25HajNq
|
39
|
-
Zlc0elJsTAppRnlhcmVGUEE4NGJ0UT09Ci0tLS0tRU5EIENFUlRJRklDQVRF
|
40
|
-
LS0tLS0K
|
41
|
-
date: 2014-04-30 00:00:00.000000000 Z
|
13
|
+
- |
|
14
|
+
-----BEGIN CERTIFICATE-----
|
15
|
+
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZuZXRz
|
16
|
+
c2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZFgNj
|
17
|
+
b20wHhcNMTgwNjA0MTA0OTQwWhcNMTkwNjA0MTA0OTQwWjBBMQ8wDQYDVQQDDAZu
|
18
|
+
ZXRzc2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZ
|
19
|
+
FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGJ4TbZ9H+qZ08
|
20
|
+
pQfJhPJTHaDCyQvCsKTFrL5O9z3tllQ7B/zksMMM+qFBpNYu9HCcg4yBATacE/PB
|
21
|
+
qVVyUrpr6lbH/XwoN5ljXm+bdCfmnjZvTCL2FTE6o+bcnaF0IsJyC0Q2B1fbWdXN
|
22
|
+
6Off1ZWoUk6We2BIM1bn6QJLxBpGyYhvOPXsYoqSuzDf2SJDDsWFZ8kV5ON13Ohm
|
23
|
+
JbBzn0oD8HF8FuYOewwsC0C1q4w7E5GtvHcQ5juweS7+RKsyDcVcVrLuNzoGRttS
|
24
|
+
KP4yMn+TzaXijyjRg7gECfJr3TGASaA4bQsILFGG5dAWcwO4OMrZedR7SHj/o0Kf
|
25
|
+
3gL7P0axAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
26
|
+
BBQF8qLA7Z4zg0SJGtUbv3eoQ8tjIzAfBgNVHREEGDAWgRRuZXRzc2hAc29sdXRp
|
27
|
+
b3VzLmNvbTAfBgNVHRIEGDAWgRRuZXRzc2hAc29sdXRpb3VzLmNvbTANBgkqhkiG
|
28
|
+
9w0BAQsFAAOCAQEAXnNaYXWVr/sCsfZdza+yBBOobYPgjOgDRfqNO2YX8RFEyDNB
|
29
|
+
AxBCQIF4OeUaoMbTQTVh24MwaDHpDTgqBAEfSs9h41lZewQaw4QUGJ6yxNVzO194
|
30
|
+
2vYohv9vHpodBukIpUFGk40vQq8nOq2MzVyCb911wnt5d0ZQg+UJf5tdMYvRvATa
|
31
|
+
F/dkTaqhq3wq/JJRghq8fJUqWN5aBtMQb/61z5J3mKAUJsUN2/VdDph2fRPDpECa
|
32
|
+
uWREKzWwXbaB96/ZyzoyP7FsQBLgdDL++g2nF0neCENc5Wj5IlQZiH0a2+X3jAgm
|
33
|
+
7UnoE3CP9Tk5GHVUina5gPyzl0VI4s4pYCPehQ==
|
34
|
+
-----END CERTIFICATE-----
|
35
|
+
date: 2018-06-14 00:00:00.000000000 Z
|
42
36
|
dependencies:
|
43
37
|
- !ruby/object:Gem::Dependency
|
44
38
|
name: net-ssh
|
45
39
|
requirement: !ruby/object:Gem::Requirement
|
46
|
-
none: false
|
47
40
|
requirements:
|
48
|
-
- -
|
41
|
+
- - ">="
|
49
42
|
- !ruby/object:Gem::Version
|
50
43
|
version: 2.6.5
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 5.0.0
|
51
47
|
type: :runtime
|
52
48
|
prerelease: false
|
53
49
|
version_requirements: !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
50
|
requirements:
|
56
|
-
- -
|
51
|
+
- - ">="
|
57
52
|
- !ruby/object:Gem::Version
|
58
53
|
version: 2.6.5
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 5.0.0
|
59
57
|
- !ruby/object:Gem::Dependency
|
60
58
|
name: test-unit
|
61
59
|
requirement: !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
60
|
requirements:
|
64
|
-
- -
|
61
|
+
- - ">="
|
65
62
|
- !ruby/object:Gem::Version
|
66
63
|
version: '0'
|
67
64
|
type: :development
|
68
65
|
prerelease: false
|
69
66
|
version_requirements: !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
67
|
requirements:
|
72
|
-
- -
|
68
|
+
- - ">="
|
73
69
|
- !ruby/object:Gem::Version
|
74
70
|
version: '0'
|
75
71
|
- !ruby/object:Gem::Dependency
|
76
72
|
name: mocha
|
77
73
|
requirement: !ruby/object:Gem::Requirement
|
78
|
-
none: false
|
79
74
|
requirements:
|
80
|
-
- -
|
75
|
+
- - ">="
|
81
76
|
- !ruby/object:Gem::Version
|
82
77
|
version: '0'
|
83
78
|
type: :development
|
84
79
|
prerelease: false
|
85
80
|
version_requirements: !ruby/object:Gem::Requirement
|
86
|
-
none: false
|
87
81
|
requirements:
|
88
|
-
- -
|
82
|
+
- - ">="
|
89
83
|
- !ruby/object:Gem::Version
|
90
84
|
version: '0'
|
91
85
|
description: A pure Ruby implementation of the SCP client protocol
|
92
|
-
email:
|
86
|
+
email:
|
87
|
+
- net-ssh@solutious.com
|
93
88
|
executables: []
|
94
89
|
extensions: []
|
95
90
|
extra_rdoc_files:
|
96
91
|
- LICENSE.txt
|
97
92
|
- README.rdoc
|
98
93
|
files:
|
99
|
-
- .
|
94
|
+
- ".gitignore"
|
95
|
+
- ".travis.yml"
|
100
96
|
- CHANGES.txt
|
97
|
+
- Gemfile
|
101
98
|
- LICENSE.txt
|
102
99
|
- Manifest
|
103
100
|
- README.rdoc
|
104
101
|
- Rakefile
|
105
|
-
- gem-public_cert.pem
|
106
102
|
- lib/net/scp.rb
|
107
103
|
- lib/net/scp/download.rb
|
108
104
|
- lib/net/scp/errors.rb
|
@@ -110,36 +106,31 @@ files:
|
|
110
106
|
- lib/net/scp/version.rb
|
111
107
|
- lib/uri/open-scp.rb
|
112
108
|
- lib/uri/scp.rb
|
109
|
+
- net-scp-public_cert.pem
|
113
110
|
- net-scp.gemspec
|
114
111
|
- setup.rb
|
115
|
-
- test/common.rb
|
116
|
-
- test/test_all.rb
|
117
|
-
- test/test_download.rb
|
118
|
-
- test/test_scp.rb
|
119
|
-
- test/test_upload.rb
|
120
112
|
homepage: https://github.com/net-ssh/net-scp
|
121
113
|
licenses:
|
122
114
|
- MIT
|
115
|
+
metadata: {}
|
123
116
|
post_install_message:
|
124
117
|
rdoc_options: []
|
125
118
|
require_paths:
|
126
119
|
- lib
|
127
120
|
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
-
none: false
|
129
121
|
requirements:
|
130
|
-
- -
|
122
|
+
- - ">="
|
131
123
|
- !ruby/object:Gem::Version
|
132
124
|
version: '0'
|
133
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
-
none: false
|
135
126
|
requirements:
|
136
|
-
- -
|
127
|
+
- - ">="
|
137
128
|
- !ruby/object:Gem::Version
|
138
129
|
version: '0'
|
139
130
|
requirements: []
|
140
|
-
rubyforge_project:
|
141
|
-
rubygems_version:
|
131
|
+
rubyforge_project:
|
132
|
+
rubygems_version: 2.7.6
|
142
133
|
signing_key:
|
143
134
|
specification_version: 3
|
144
|
-
summary: A pure Ruby implementation of the SCP client protocol
|
135
|
+
summary: A pure Ruby implementation of the SCP client protocol.
|
145
136
|
test_files: []
|