winrm-fs 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +0 -1
- data/.rubocop.yml +7 -2
- data/.rubocop_todo.yml +72 -0
- data/.travis.yml +2 -1
- data/Gemfile +0 -1
- data/Rakefile +2 -3
- data/VERSION +1 -1
- data/Vagrantfile +1 -2
- data/bin/rwinrmcp +0 -1
- data/changelog.md +3 -0
- data/lib/winrm-fs.rb +0 -1
- data/lib/winrm-fs/core/file_transporter.rb +9 -11
- data/lib/winrm-fs/core/tmp_zip.rb +3 -5
- data/lib/winrm-fs/exceptions.rb +0 -1
- data/lib/winrm-fs/file_manager.rb +16 -6
- data/lib/winrm-fs/scripts/download.ps1.erb +4 -1
- data/lib/winrm-fs/scripts/scripts.rb +2 -2
- data/spec/integration/file_manager_spec.rb +49 -4
- data/spec/integration/tmp_zip_spec.rb +4 -4
- data/spec/matchers.rb +0 -1
- data/spec/spec_helper.rb +3 -7
- data/spec/unit/tmp_zip_spec.rb +1 -2
- data/winrm-fs.gemspec +8 -9
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0f709ab1c583eaa7566b5adc461aaf46cf2b65e
|
4
|
+
data.tar.gz: c8cdda9ef2983370cbc964dc9d89eddf348dbd22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0d362238781bb50982b7b3f8947b754c3dde755fe4f727197579d943534c717db891b3a197150f2ad975661d12bfc8be66b2e6e9eee9f1395efa6e70cf15a39
|
7
|
+
data.tar.gz: f5daea2da6036290bca6446936f6d79105578a8106746c809a3887725ba2d7171470451f5c7e0290a8ec4264f7f597af86e77dcb0b01697d697ca35dd433bcc9
|
data/.rspec
CHANGED
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2017-12-12 22:48:53 +0100 using RuboCop version 0.52.0.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 1
|
10
|
+
# Cop supports --auto-correct.
|
11
|
+
# Configuration parameters: EnforcedStyle.
|
12
|
+
# SupportedStyles: auto_detection, squiggly, active_support, powerpack, unindent
|
13
|
+
Layout/IndentHeredoc:
|
14
|
+
Exclude:
|
15
|
+
- 'spec/matchers.rb'
|
16
|
+
|
17
|
+
# Offense count: 6
|
18
|
+
# Configuration parameters: CountComments, ExcludedMethods.
|
19
|
+
Metrics/BlockLength:
|
20
|
+
Max: 185
|
21
|
+
|
22
|
+
# Offense count: 3
|
23
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
24
|
+
# URISchemes: http, https
|
25
|
+
Metrics/LineLength:
|
26
|
+
Max: 106
|
27
|
+
|
28
|
+
# Offense count: 4
|
29
|
+
# Configuration parameters: Blacklist.
|
30
|
+
# Blacklist: END, (?-mix:EO[A-Z]{1})
|
31
|
+
Naming/HeredocDelimiterNaming:
|
32
|
+
Exclude:
|
33
|
+
- 'lib/winrm-fs/core/file_transporter.rb'
|
34
|
+
- 'spec/matchers.rb'
|
35
|
+
- 'winrm-fs.gemspec'
|
36
|
+
|
37
|
+
# Offense count: 2
|
38
|
+
# Cop supports --auto-correct.
|
39
|
+
# Configuration parameters: AutoCorrect.
|
40
|
+
Performance/HashEachMethods:
|
41
|
+
Exclude:
|
42
|
+
- 'lib/winrm-fs/core/file_transporter.rb'
|
43
|
+
|
44
|
+
# Offense count: 1
|
45
|
+
# Configuration parameters: .
|
46
|
+
# SupportedStyles: annotated, template, unannotated
|
47
|
+
Style/FormatStringToken:
|
48
|
+
EnforcedStyle: unannotated
|
49
|
+
|
50
|
+
# Offense count: 4
|
51
|
+
# Cop supports --auto-correct.
|
52
|
+
# Configuration parameters: AutoCorrect, EnforcedStyle.
|
53
|
+
# SupportedStyles: predicate, comparison
|
54
|
+
Style/NumericPredicate:
|
55
|
+
Exclude:
|
56
|
+
- 'spec/**/*'
|
57
|
+
- 'lib/winrm-fs/core/file_transporter.rb'
|
58
|
+
- 'lib/winrm-fs/file_manager.rb'
|
59
|
+
|
60
|
+
# Offense count: 1
|
61
|
+
# Cop supports --auto-correct.
|
62
|
+
# Configuration parameters: EnforcedStyle, AllowInnerSlashes.
|
63
|
+
# SupportedStyles: slashes, percent_r, mixed
|
64
|
+
Style/RegexpLiteral:
|
65
|
+
Exclude:
|
66
|
+
- 'lib/winrm-fs/core/tmp_zip.rb'
|
67
|
+
|
68
|
+
# Offense count: 3
|
69
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
70
|
+
# URISchemes: http, https
|
71
|
+
Metrics/LineLength:
|
72
|
+
Max: 106
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
require 'rubygems'
|
3
2
|
require 'bundler/setup'
|
4
3
|
require 'rspec/core/rake_task'
|
@@ -23,6 +22,6 @@ end
|
|
23
22
|
|
24
23
|
RuboCop::RakeTask.new
|
25
24
|
|
26
|
-
task default: [
|
25
|
+
task default: %i[spec rubocop]
|
27
26
|
|
28
|
-
task all: [
|
27
|
+
task all: %i[default integration]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
data/Vagrantfile
CHANGED
data/bin/rwinrmcp
CHANGED
data/changelog.md
CHANGED
data/lib/winrm-fs.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
#
|
3
2
|
# Author:: Fletcher (<fnichol@nichol.ca>)
|
4
3
|
#
|
@@ -152,9 +151,7 @@ module WinRM
|
|
152
151
|
# @api private
|
153
152
|
def reconcile_destinations!(files)
|
154
153
|
files.each do |_, data|
|
155
|
-
if data['target_is_folder'] == 'True'
|
156
|
-
data['dst'] = File.join(data['dst'], File.basename(data['src']))
|
157
|
-
end
|
154
|
+
data['dst'] = File.join(data['dst'], File.basename(data['src'])) if data['target_is_folder'] == 'True'
|
158
155
|
end
|
159
156
|
end
|
160
157
|
|
@@ -321,7 +318,7 @@ module WinRM
|
|
321
318
|
elsif File.directory?(expanded)
|
322
319
|
add_directory_hash!(hash, expanded, remote)
|
323
320
|
else
|
324
|
-
|
321
|
+
raise Errno::ENOENT, "No such file or directory #{expanded}"
|
325
322
|
end
|
326
323
|
end
|
327
324
|
hash
|
@@ -362,10 +359,10 @@ module WinRM
|
|
362
359
|
stderr = output.stderr
|
363
360
|
|
364
361
|
if exitcode != 0
|
365
|
-
|
362
|
+
raise FileTransporterFailed, "[#{self.class}] Upload failed " \
|
366
363
|
"(exitcode: #{exitcode})\n#{stderr}"
|
367
364
|
elsif stderr != '\r\n' && stderr != ''
|
368
|
-
|
365
|
+
raise FileTransporterFailed, "[#{self.class}] Upload failed " \
|
369
366
|
"(exitcode: 0), but stderr present\n#{stderr}"
|
370
367
|
end
|
371
368
|
|
@@ -413,7 +410,8 @@ module WinRM
|
|
413
410
|
# @api private
|
414
411
|
def stream_upload(input_io, dest)
|
415
412
|
read_size = ((max_encoded_write - dest.length) / 4) * 3
|
416
|
-
chunk
|
413
|
+
chunk = 1
|
414
|
+
bytes = 0
|
417
415
|
buffer = ''
|
418
416
|
shell.run(<<-EOS
|
419
417
|
$to = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("#{dest}")
|
@@ -425,7 +423,6 @@ module WinRM
|
|
425
423
|
[System.io.FileAccess]::Write,
|
426
424
|
[System.IO.FileShare]::ReadWrite
|
427
425
|
)
|
428
|
-
|
429
426
|
# Powershell caches ScrpitBlocks in a dictionary
|
430
427
|
# keyed on the script block text. Thats just great
|
431
428
|
# unless the script is super large and called a gillion
|
@@ -436,7 +433,7 @@ module WinRM
|
|
436
433
|
$bindingFlags= [Reflection.BindingFlags] "NonPublic,Static"
|
437
434
|
$method = [scriptblock].GetMethod("ClearScriptBlockCache", $bindingFlags)
|
438
435
|
EOS
|
439
|
-
|
436
|
+
)
|
440
437
|
|
441
438
|
while input_io.read(read_size, buffer)
|
442
439
|
bytes += (buffer.bytesize / 3 * 4)
|
@@ -468,7 +465,8 @@ module WinRM
|
|
468
465
|
# @api private
|
469
466
|
def stream_upload_file(src, dest, &block)
|
470
467
|
logger.debug "Uploading #{src} to #{dest}"
|
471
|
-
chunks
|
468
|
+
chunks = 0
|
469
|
+
bytes = 0
|
472
470
|
elapsed = Benchmark.measure do
|
473
471
|
File.open(src, 'rb') do |io|
|
474
472
|
chunks, bytes = stream_upload(io, dest, &block)
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
#
|
3
2
|
# Author:: Fletcher (<fnichol@nichol.ca>)
|
4
3
|
#
|
@@ -103,9 +102,7 @@ module WinRM
|
|
103
102
|
# @api private
|
104
103
|
def clean_dirname(dir)
|
105
104
|
paths = Pathname.glob(dir)
|
106
|
-
if paths.length != 1
|
107
|
-
fail "Expected Pathname.glob(dir) to return only dir, got #{paths}"
|
108
|
-
end
|
105
|
+
raise "Expected Pathname.glob(dir) to return only dir, got #{paths}" if paths.length != 1
|
109
106
|
paths.first
|
110
107
|
end
|
111
108
|
|
@@ -132,7 +129,8 @@ module WinRM
|
|
132
129
|
logger.debug "+++ Adding #{entry_path}"
|
133
130
|
zos.put_next_entry(
|
134
131
|
zip_entry(entry_path),
|
135
|
-
nil, nil, ::Zip::Entry::DEFLATED, Zlib::BEST_COMPRESSION
|
132
|
+
nil, nil, ::Zip::Entry::DEFLATED, Zlib::BEST_COMPRESSION
|
133
|
+
)
|
136
134
|
entry.open('rb') { |src| IO.copy_stream(src, zos) }
|
137
135
|
end
|
138
136
|
logger.debug '=== All files added.'
|
data/lib/winrm-fs/exceptions.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
#
|
3
2
|
# Copyright 2015 Shawn Neal <sneal@sneal.net>
|
4
3
|
#
|
@@ -60,14 +59,14 @@ module WinRM
|
|
60
59
|
# Downloads the specified remote file to the specified local path
|
61
60
|
# @param [String] The full path on the remote machine
|
62
61
|
# @param [String] The full path to write the file to locally
|
63
|
-
def download(remote_path, local_path)
|
62
|
+
def download(remote_path, local_path, first = true)
|
64
63
|
@logger.debug("downloading: #{remote_path} -> #{local_path}")
|
65
64
|
script = WinRM::FS::Scripts.render('download', path: remote_path)
|
66
65
|
output = @connection.shell(:powershell) { |e| e.run(script) }
|
67
|
-
return false if output.exitcode != 0
|
68
66
|
contents = output.stdout.gsub('\n\r', '')
|
69
|
-
|
70
|
-
|
67
|
+
return false if output.exitcode != 0
|
68
|
+
download_dir(remote_path, local_path, first) if contents.empty?
|
69
|
+
IO.binwrite(local_path, Base64.decode64(contents)) unless contents.empty?
|
71
70
|
true
|
72
71
|
end
|
73
72
|
|
@@ -85,7 +84,7 @@ module WinRM
|
|
85
84
|
# @return [String] Full path to the temp directory
|
86
85
|
def temp_dir
|
87
86
|
@guest_temp ||= begin
|
88
|
-
(@connection.shell(:powershell) { |e| e.run('$env:TEMP') }).stdout.chomp.
|
87
|
+
(@connection.shell(:powershell) { |e| e.run('$env:TEMP') }).stdout.chomp.tr('\\', '/')
|
89
88
|
end
|
90
89
|
end
|
91
90
|
|
@@ -113,6 +112,17 @@ module WinRM
|
|
113
112
|
file_transporter.upload(local_path, remote_path, &block)[0]
|
114
113
|
end
|
115
114
|
end
|
115
|
+
|
116
|
+
private
|
117
|
+
|
118
|
+
def download_dir(remote_path, local_path, first)
|
119
|
+
local_path = File.join(local_path, File.basename(remote_path)) if first
|
120
|
+
FileUtils.mkdir_p(local_path) unless File.directory?(local_path)
|
121
|
+
command = "Get-ChildItem #{remote_path} | Select-Object Name"
|
122
|
+
@connection.shell(:powershell) { |e| e.run(command) }.stdout.strip.split(/\n/).drop(2).each do |file|
|
123
|
+
download(File.join(remote_path.to_s, file.strip), File.join(local_path, file.strip), first = false)
|
124
|
+
end
|
125
|
+
end
|
116
126
|
end
|
117
127
|
end
|
118
128
|
end
|
@@ -1,8 +1,11 @@
|
|
1
1
|
$p = $ExecutionContext.SessionState.Path
|
2
2
|
$path = $p.GetUnresolvedProviderPathFromPSPath("<%= path %>")
|
3
|
-
|
3
|
+
If (Test-Path $path -PathType Leaf) {
|
4
4
|
$bytes = [System.convert]::ToBase64String([System.IO.File]::ReadAllBytes($path))
|
5
5
|
Write-Host $bytes
|
6
6
|
exit 0
|
7
7
|
}
|
8
|
+
ElseIf (Test-Path $path -PathType Container) {
|
9
|
+
exit 0
|
10
|
+
}
|
8
11
|
exit 1
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
#
|
3
2
|
# Copyright 2015 Shawn Neal <sneal@sneal.net>
|
4
3
|
#
|
@@ -22,7 +21,8 @@ module WinRM
|
|
22
21
|
module Scripts
|
23
22
|
def self.render(template, context)
|
24
23
|
template_path = File.expand_path(
|
25
|
-
"#{File.dirname(__FILE__)}/#{template}.ps1.erb"
|
24
|
+
"#{File.dirname(__FILE__)}/#{template}.ps1.erb"
|
25
|
+
)
|
26
26
|
template = File.read(template_path)
|
27
27
|
Erubis::Eruby.new(template).result(context)
|
28
28
|
end
|
@@ -1,8 +1,9 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
require 'pathname'
|
3
2
|
|
3
|
+
# rubocop:disable BlockLength
|
4
4
|
describe WinRM::FS::FileManager do
|
5
|
-
let(:
|
5
|
+
let(:upload_dir) { "winrm_#{rand(2**16)}" }
|
6
|
+
let(:dest_dir) { File.join(subject.temp_dir, upload_dir) }
|
6
7
|
let(:temp_upload_dir) { '$env:TEMP/winrm-upload' }
|
7
8
|
let(:spec_dir) { File.expand_path(File.dirname(File.dirname(__FILE__))) }
|
8
9
|
let(:this_file) { Pathname.new(__FILE__) }
|
@@ -39,6 +40,50 @@ describe WinRM::FS::FileManager do
|
|
39
40
|
end
|
40
41
|
end
|
41
42
|
|
43
|
+
context 'download file' do
|
44
|
+
let(:download_dir) { File.join(spec_dir, 'temp') }
|
45
|
+
let(:dest_file) { Pathname.new(File.join(dest_dir, File.basename(this_file))) }
|
46
|
+
let(:download_file) { Pathname.new(File.join(download_dir, File.basename(this_file))) }
|
47
|
+
|
48
|
+
before(:each) do
|
49
|
+
expect(subject.delete(dest_dir)).to be true
|
50
|
+
FileUtils.rm_rf(Dir.glob("#{download_dir}/*"))
|
51
|
+
FileUtils.mkdir_p(download_dir)
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should download the specified file' do
|
55
|
+
subject.upload(this_file, dest_file)
|
56
|
+
subject.download(dest_file, download_file)
|
57
|
+
expect(File.open(download_file).read).to eq(File.open(this_file).read)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'download directory' do
|
62
|
+
let(:download_dir) { File.join(spec_dir, 'temp') }
|
63
|
+
let(:dest_file) { Pathname.new(File.join(dest_dir, File.basename(this_file))) }
|
64
|
+
let(:root_dir) { File.expand_path('../../', File.dirname(__FILE__)) }
|
65
|
+
let(:winrm_fs_dir) { File.join(root_dir, 'lib/winrm-fs') }
|
66
|
+
|
67
|
+
before(:each) do
|
68
|
+
expect(subject.delete(dest_dir)).to be true
|
69
|
+
FileUtils.rm_rf(Dir.glob("#{download_dir}/*"))
|
70
|
+
FileUtils.mkdir_p(download_dir)
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'downloads the directory contents recursively' do
|
74
|
+
subject.upload(winrm_fs_dir, dest_dir)
|
75
|
+
subject.download(dest_dir, download_dir)
|
76
|
+
|
77
|
+
Dir.glob(winrm_fs_dir + '/**/*.rb').each do |host_file|
|
78
|
+
host_file_rel = Pathname.new(host_file).relative_path_from(
|
79
|
+
Pathname.new(winrm_fs_dir)
|
80
|
+
).to_s
|
81
|
+
download_file = File.join(download_dir, upload_dir, host_file_rel)
|
82
|
+
expect(File.open(download_file).read).to eq(File.open(host_file).read)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
42
87
|
context 'upload file' do
|
43
88
|
let(:dest_file) { Pathname.new(File.join(dest_dir, File.basename(this_file))) }
|
44
89
|
|
@@ -110,8 +155,7 @@ describe WinRM::FS::FileManager do
|
|
110
155
|
it 'yields progress data' do
|
111
156
|
block_called = false
|
112
157
|
total_bytes_copied = 0
|
113
|
-
total = subject.upload(this_file, dest_file) do
|
114
|
-
|bytes_copied, total_bytes, local_path, remote_path|
|
158
|
+
total = subject.upload(this_file, dest_file) do |bytes_copied, total_bytes, local_path, remote_path|
|
115
159
|
expect(total_bytes).to be > 0
|
116
160
|
total_bytes_copied = bytes_copied
|
117
161
|
expect(local_path).to eq(this_file.to_s)
|
@@ -222,3 +266,4 @@ describe WinRM::FS::FileManager do
|
|
222
266
|
end
|
223
267
|
end
|
224
268
|
end
|
269
|
+
# rubocop:enable BlockLength
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
require_relative '../../lib/winrm-fs/core/tmp_zip'
|
3
2
|
|
4
3
|
describe WinRM::FS::Core::TmpZip do
|
@@ -18,9 +17,10 @@ describe WinRM::FS::Core::TmpZip do
|
|
18
17
|
context 'create zip' do
|
19
18
|
it 'should add all files in directory to the zip recursively' do
|
20
19
|
expect(subject).to contain_zip_entries([
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
'exceptions.rb',
|
21
|
+
'core/tmp_zip.rb',
|
22
|
+
'scripts/checksum.ps1.erb'
|
23
|
+
])
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
data/spec/matchers.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
require 'rubygems'
|
3
2
|
require 'bundler/setup'
|
4
3
|
require 'winrm-fs'
|
@@ -7,7 +6,6 @@ require_relative 'matchers'
|
|
7
6
|
|
8
7
|
# Creates a WinRM connection for integration tests
|
9
8
|
module ConnectionHelper
|
10
|
-
# rubocop:disable AbcSize
|
11
9
|
def winrm_connection
|
12
10
|
WinRM::Connection.new(config)
|
13
11
|
end
|
@@ -15,8 +13,8 @@ module ConnectionHelper
|
|
15
13
|
|
16
14
|
def config
|
17
15
|
@config ||= begin
|
18
|
-
cfg = symbolize_keys(YAML.
|
19
|
-
cfg
|
16
|
+
cfg = symbolize_keys(YAML.safe_load(File.read(winrm_config_path)))
|
17
|
+
cfg[:basic_auth_only] = true unless cfg[:transport].eql? :kerberos
|
20
18
|
merge_environment!(cfg)
|
21
19
|
cfg
|
22
20
|
end
|
@@ -26,9 +24,7 @@ module ConnectionHelper
|
|
26
24
|
merge_config_option_from_environment(config, 'user')
|
27
25
|
merge_config_option_from_environment(config, 'password')
|
28
26
|
merge_config_option_from_environment(config, 'no_ssl_peer_verification')
|
29
|
-
if ENV['use_ssl_peer_fingerprint']
|
30
|
-
config[:options][:ssl_peer_fingerprint] = ENV['winrm_cert']
|
31
|
-
end
|
27
|
+
config[:options][:ssl_peer_fingerprint] = ENV['winrm_cert'] if ENV['use_ssl_peer_fingerprint']
|
32
28
|
config[:endpoint] = ENV['winrm_endpoint'] if ENV['winrm_endpoint']
|
33
29
|
config[:transport] = ENV['winrm_transport'] if ENV['winrm_transport']
|
34
30
|
end
|
data/spec/unit/tmp_zip_spec.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
#
|
3
2
|
# Author:: Fletcher (<fnichol@nichol.ca>)
|
4
3
|
#
|
@@ -36,7 +35,7 @@ describe WinRM::FS::Core::TmpZip do
|
|
36
35
|
|
37
36
|
let(:tmp_zip) { WinRM::FS::Core::TmpZip.new(src_dir) }
|
38
37
|
|
39
|
-
before
|
38
|
+
before { @tmpdirs = [] }
|
40
39
|
|
41
40
|
after do
|
42
41
|
@tmpdirs.each(&:rmtree)
|
data/winrm-fs.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
require 'date'
|
3
2
|
|
4
3
|
version = File.read(File.expand_path('../VERSION', __FILE__)).strip
|
@@ -7,7 +6,7 @@ Gem::Specification.new do |s|
|
|
7
6
|
s.platform = Gem::Platform::RUBY
|
8
7
|
s.name = 'winrm-fs'
|
9
8
|
s.version = version
|
10
|
-
s.date
|
9
|
+
s.date = Date.today.to_s
|
11
10
|
|
12
11
|
s.author = ['Shawn Neal', 'Matt Wrock']
|
13
12
|
s.email = ['sneal@sneal.net', 'matt@mattwrock.com']
|
@@ -20,18 +19,18 @@ Gem::Specification.new do |s|
|
|
20
19
|
|
21
20
|
s.files = `git ls-files`.split(/\n/)
|
22
21
|
s.require_path = 'lib'
|
23
|
-
s.rdoc_options = %w
|
24
|
-
s.extra_rdoc_files = %w
|
22
|
+
s.rdoc_options = %w[-x test/ -x examples/]
|
23
|
+
s.extra_rdoc_files = %w[README.md LICENSE]
|
25
24
|
|
26
25
|
s.bindir = 'bin'
|
27
|
-
s.executables
|
28
|
-
s.required_ruby_version = '>= 1.
|
26
|
+
s.executables = ['rwinrmcp']
|
27
|
+
s.required_ruby_version = '>= 2.1.0'
|
29
28
|
s.add_runtime_dependency 'erubis', '~> 2.7'
|
30
29
|
s.add_runtime_dependency 'logging', ['>= 1.6.1', '< 3.0']
|
31
30
|
s.add_runtime_dependency 'rubyzip', '~> 1.1'
|
32
31
|
s.add_runtime_dependency 'winrm', '~> 2.0'
|
33
32
|
s.add_development_dependency 'pry'
|
34
|
-
s.add_development_dependency '
|
35
|
-
s.add_development_dependency '
|
36
|
-
s.add_development_dependency 'rubocop', '~> 0.
|
33
|
+
s.add_development_dependency 'rake', '~> 10.3'
|
34
|
+
s.add_development_dependency 'rspec', '~> 3.0'
|
35
|
+
s.add_development_dependency 'rubocop', '~> 0.51'
|
37
36
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: winrm-fs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shawn Neal
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-01-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: erubis
|
@@ -88,47 +88,47 @@ dependencies:
|
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
|
-
name:
|
91
|
+
name: rake
|
92
92
|
requirement: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 3
|
96
|
+
version: '10.3'
|
97
97
|
type: :development
|
98
98
|
prerelease: false
|
99
99
|
version_requirements: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 3
|
103
|
+
version: '10.3'
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
105
|
+
name: rspec
|
106
106
|
requirement: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: '3.0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: '3.0'
|
118
118
|
- !ruby/object:Gem::Dependency
|
119
119
|
name: rubocop
|
120
120
|
requirement: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.
|
124
|
+
version: '0.51'
|
125
125
|
type: :development
|
126
126
|
prerelease: false
|
127
127
|
version_requirements: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.
|
131
|
+
version: '0.51'
|
132
132
|
description: " Ruby library for file system operations via Windows Remote Management\n"
|
133
133
|
email:
|
134
134
|
- sneal@sneal.net
|
@@ -143,6 +143,7 @@ files:
|
|
143
143
|
- ".gitignore"
|
144
144
|
- ".rspec"
|
145
145
|
- ".rubocop.yml"
|
146
|
+
- ".rubocop_todo.yml"
|
146
147
|
- ".travis.yml"
|
147
148
|
- Gemfile
|
148
149
|
- LICENSE
|
@@ -188,7 +189,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
188
189
|
requirements:
|
189
190
|
- - ">="
|
190
191
|
- !ruby/object:Gem::Version
|
191
|
-
version: 1.
|
192
|
+
version: 2.1.0
|
192
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
194
|
requirements:
|
194
195
|
- - ">="
|