winrm-transport 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8fceb01bb304b3dbde260f959336ea7dc319dd81
4
- data.tar.gz: 35dfc04b0d86e4ec094e6646b2e0ffc34224e623
3
+ metadata.gz: ed77e7070e00d3297d006565411a84fa4c7599b9
4
+ data.tar.gz: 0d6ae6a15fb437ed6bb691cc937fe0d5125b08d2
5
5
  SHA512:
6
- metadata.gz: 5ea5f23b2e9bc90cd2fe5c8db87b18fed3b5061e9b4858160cef498583b07c0ca7fc47da1a22f33e244b17a17bef653233070456fc953afa1f27bcfac1b2a0d0
7
- data.tar.gz: d2ac24211bd20bc50cfaae3c5c02c430293bf5701975072fb50cb429948db816551aa9a486ee136b69193c475f17665e9455ee30eaf566c22e078a012ff4be4b
6
+ metadata.gz: 34d86ef488009afa559bed219b460745f2b74838b94eff8aca67ed225dd8ac1c84f65f56a18ac9a10e908b25cc7db9b039494f36d3c53da07195c470a1b78a9a
7
+ data.tar.gz: 12891bec59e93d70c6d0b85e9d368c3a2598977a9200c16fd86fb85390d7835f1b2b9e2df07db6131d29a236d0ffa86a81b57c67b3ccd4294a24c5db1c1548bf
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## 1.0.1 / 2015-05-20
2
+
3
+ ### Bug fixes
4
+
5
+ * Pull request [#4][]: Fix unpacking process for the compressed folders. ([@smurawski][])
6
+
7
+ ### Improvements
8
+
9
+ * Pull request [#6][]: Minor grammatical update to the README. ([@jmccann][])
10
+ * Pull request [#5][]: Remove fakefs as a development dependency. ([@fnichol][])
11
+
12
+
1
13
  ## 1.0.0 / 2015-03-29
2
14
 
3
15
  The initial release.
16
+
17
+ <!--- The following link definition list is generated by PimpMyChangelog --->
18
+ [#4]: https://github.com/test-kitchen/winrm-transport/issues/4
19
+ [#5]: https://github.com/test-kitchen/winrm-transport/issues/5
20
+ [#6]: https://github.com/test-kitchen/winrm-transport/issues/6
21
+ [@fnichol]: https://github.com/fnichol
22
+ [@jmccann]: https://github.com/jmccann
23
+ [@smurawski]: https://github.com/smurawski
data/README.md CHANGED
@@ -27,7 +27,7 @@ Or install it yourself as:
27
27
 
28
28
  ## Usage
29
29
 
30
- This a library gem and doesn't have any CLI commands. There are 2 primary object classes:
30
+ This is a library gem and doesn't have any CLI commands. There are 2 primary object classes:
31
31
 
32
32
  * [WinRM::Transport::CommandExecutor][command_executor]: an object which can
33
33
  execute multiple commands and PowerShell script in one shared remote shell
@@ -178,7 +178,6 @@ module WinRM
178
178
  debug { "Running check_files.ps1" }
179
179
  hash_file = create_remote_hash_file(check_files_ps_hash(files))
180
180
  vars = %{$hash_file = "#{hash_file}"\n}
181
-
182
181
  output = service.run_powershell_script(
183
182
  [vars, check_files_script].join("\n")
184
183
  )
@@ -253,7 +252,10 @@ module WinRM
253
252
  vars = %{$hash_file = "#{hash_file}"\n}
254
253
 
255
254
  output = service.run_powershell_script(
256
- [vars, decode_files_script].join("\n")
255
+ [vars,
256
+ ". #{decode_files_script}",
257
+ "Decode-Files (Invoke-Input $hash_file) | ConvertTo-Csv -NoTypeInformation"
258
+ ].join("\n")
257
259
  )
258
260
  parse_response(output)
259
261
  end
@@ -376,7 +378,7 @@ module WinRM
376
378
  if obj.is_a?(Hash)
377
379
  obj.map { |k, v|
378
380
  %{#{pad(depth + 2)}#{ps_hash(k)} = #{ps_hash(v, depth + 2)}}
379
- }.join("\n").insert(0, "@{\n").insert(-1, "\n#{pad(depth)}}")
381
+ }.join(";\n").insert(0, "@{\n").insert(-1, "\n#{pad(depth)}}")
380
382
  else
381
383
  %{"#{obj}"}
382
384
  end
@@ -20,6 +20,6 @@ module WinRM
20
20
 
21
21
  module Transport
22
22
 
23
- VERSION = "1.0.0"
23
+ VERSION = "1.0.1"
24
24
  end
25
25
  end
@@ -1,60 +1,50 @@
1
- Function Cleanup($o) { if (($o -ne $null) -and ($o.GetType().GetMethod("Dispose") -ne $null)) { $o.Dispose() } }
2
-
3
- Function Decode-Base64File($src, $dst) {
4
- Try {
5
- $in = (Get-Item $src).OpenRead()
6
- $b64 = New-Object -TypeName System.Security.Cryptography.FromBase64Transform
7
- $m = [System.Security.Cryptography.CryptoStreamMode]::Read
8
- $d = New-Object -TypeName System.Security.Cryptography.CryptoStream $in,$b64,$m
9
- echo $null > $dst
10
- Copy-Stream $d ($out = [System.IO.File]::OpenWrite($dst))
11
- } Finally { Cleanup $in; Cleanup $out; Cleanup $d }
12
- }
13
-
1
+ Function Cleanup($o) { if (($o) -and ($o.GetType().GetMethod("Dispose") -ne $null)) { $o.Dispose() } }
2
+ Function Decode-Base64File($src, $dst) {set-content -Encoding Byte -Path $dst -Value ([Convert]::FromBase64String([IO.File]::ReadAllLines($src)))}
14
3
  Function Copy-Stream($src, $dst) { $b = New-Object Byte[] 4096; while (($i = $src.Read($b, 0, $b.Length)) -ne 0) { $dst.Write($b, 0, $i) } }
4
+ function Resolve-ProviderPath{ $input | % {if ($_){(Resolve-Path $_).ProviderPath} else{$null}} }
5
+ Function Release-COM($o) { if ($o -ne $null) { [void][Runtime.Interopservices.Marshal]::ReleaseComObject($o) } }
6
+ function Test-NETStack($Version, $r = 'HKLM:\Software\Microsoft\NET Framework Setup\NDP\v4') { [bool]("$r\Full", "$r\Client" | ? {(gp $_).Version -like "$($Version)*"}) }
7
+ function Test-IOCompression {($PSVersionTable.PSVersion.Major -ge 3) -and (Test-NETStack '4.5')}
8
+ set-alias RPP -Value Resolve-ProviderPath
15
9
 
16
10
  Function Decode-Files($hash) {
17
- $hash.GetEnumerator() | ForEach-Object {
18
- $tmp = Unresolve-Path $_.Key
11
+ foreach ($key in $hash.keys) {
12
+ $value = $hash[$key]
13
+ $tmp, $tzip, $dst = $Key, $Value["tmpzip"], $Value["dst"]
19
14
  $sMd5 = (Get-Item $tmp).BaseName.Replace("b64-", "")
20
- $tzip, $dst = (Unresolve-Path $_.Value["tmpzip"]), (Unresolve-Path $_.Value["dst"])
21
15
  $decoded = if ($tzip -ne $null) { $tzip } else { $dst }
22
16
  Decode-Base64File $tmp $decoded
23
17
  Remove-Item $tmp -Force
24
18
  $dMd5 = Get-MD5Sum $decoded
25
- $verifies = if ($sMd5 -eq $dMd5) { $true } else { $false }
26
- if ($tzip) { Unzip-File $tzip $dst; Remove-Item $tzip -Force }
19
+ $verifies = $sMd5 -like $dMd5
20
+ if ($tzip) {Unzip-File $tzip $dst;Remove-Item $tzip -Force}
27
21
  New-Object psobject -Property @{ dst = $dst; verifies = $verifies; src_md5 = $sMd5; dst_md5 = $dMd5; tmpfile = $tmp; tmpzip = $tzip }
28
- } | Select-Object -Property dst,verifies,src_md5,dst_md5,tmpfile,tmpzip
22
+ }
29
23
  }
30
24
 
31
25
  Function Get-MD5Sum($src) {
32
26
  Try {
33
- $c = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
27
+ $c = New-Object -TypeName Security.Cryptography.MD5CryptoServiceProvider
34
28
  $bytes = $c.ComputeHash(($in = (Get-Item $src).OpenRead()))
35
- return ([System.BitConverter]::ToString($bytes)).Replace("-", "").ToLower()
36
- } Finally { Cleanup $c; Cleanup $in }
29
+ ([BitConverter]::ToString($bytes)).Replace("-", "").ToLower()
30
+ } catch [exception]{throw $_} finally { Cleanup $c; Cleanup $in }
37
31
  }
38
32
 
39
33
  Function Invoke-Input($in) {
40
- $in = Unresolve-Path $in
34
+ $in = $in | rpp
41
35
  Decode-Base64File $in ($decoded = "$($in).ps1")
42
36
  $expr = Get-Content $decoded | Out-String
43
37
  Remove-Item $in,$decoded -Force
44
- return Invoke-Expression "$expr"
38
+ Invoke-Expression "$expr"
45
39
  }
46
40
 
47
- Function Release-COM($o) { if ($o -ne $null) { [void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($o) } }
48
-
49
- Function Unresolve-Path($p) { if ($p -eq $null) { return $null } else { return $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($p) } }
50
-
51
41
  Function Unzip-File($src, $dst) {
52
- $r = "HKLM:\Software\Microsoft\NET Framework Setup\NDP\v4"
53
- if (($PSVersionTable.PSVersion.Major -ge 3) -and ((gp "$r\Full").Version -like "4.5*" -or (gp "$r\Client").Version -like "4.5*")) {
54
- [System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem") | Out-Null; [System.IO.Compression.ZipFile]::ExtractToDirectory("$src", "$dst")
55
- } else {
56
- Try { $s = New-Object -ComObject Shell.Application; ($dp = $s.NameSpace($dst)).CopyHere(($z = $s.NameSpace($src)).Items(), 0x610) } Finally { Release-Com $s; Release-Com $z; Release-COM $dp }
42
+ $unpack = $src -replace '\.zip'
43
+ if (Test-IOCompression) {Add-Type -AN System.IO.Compression.FileSystem; [IO.Compression.ZipFile]::ExtractToDirectory($src, $unpack)}
44
+ else {
45
+ Try {$s = New-Object -ComObject Shell.Application; ($dp = $s.NameSpace($unpack)).CopyHere(($z = $s.NameSpace($src)).Items(), 0x610)} Finally {Release-Com $s; Release-Com $z; Release-COM $dp}
57
46
  }
47
+ if (-not (test-path $dst)) {$null = mkdir $dst }
48
+ dir $unpack | cp -dest "$dst/" -force -recurse
49
+ rm $unpack -recurse -force
58
50
  }
59
-
60
- Decode-Files (Invoke-Input $hash_file) | ConvertTo-Csv -NoTypeInformation
@@ -35,7 +35,6 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency "bundler", "~> 1.9"
36
36
  spec.add_development_dependency "rake", "~> 10.0"
37
37
 
38
- spec.add_development_dependency "fakefs", "~> 0.4"
39
38
  spec.add_development_dependency "minitest"
40
39
  spec.add_development_dependency "mocha", "~> 1.1"
41
40
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: winrm-transport
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fletcher Nichol
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-03-29 00:00:00.000000000 Z
11
+ date: 2015-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: winrm
@@ -86,20 +86,6 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: '10.0'
89
- - !ruby/object:Gem::Dependency
90
- name: fakefs
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '0.4'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '0.4'
103
89
  - !ruby/object:Gem::Dependency
104
90
  name: minitest
105
91
  requirement: !ruby/object:Gem::Requirement