train-core 3.1.3 → 3.1.4

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
  SHA256:
3
- metadata.gz: 498cde88401e4600e70ca7a11c60e22000252b8e6e453849e050f005bd5fa0eb
4
- data.tar.gz: fb23a404a78eb64b4918ab4e5726d0f9cff1270cc750b9f5b77e6d9b67ec0ecd
3
+ metadata.gz: feec4276265c7ac930c41c9bb73182480eb4287adf883a9ca82b6b82b41eefa2
4
+ data.tar.gz: 46772374d142259ce4cd2cfdf2d5fb6b661edf8708e5c940b31745a0690453ac
5
5
  SHA512:
6
- metadata.gz: be868622834db36c1c07c3c8221a13b7cc112c94c176db9fdd923160945bb28b0436d9405c8f9dd58175dbbc234278eab847cd55f866eaa56adf13c416868e25
7
- data.tar.gz: a166c00d0eda33cc8942ed19cb2926433997c9f2975322e701c6a01ea52c9f614684e7d53df0489b8fbbf53e35375bf05cdc85eb7af5c2ee800cb12c531aacb3
6
+ metadata.gz: 6246399247cb941017ccf01f053adcab64bcdfce36441b579ad80d62c054538e29551eb39c2f64ea1b88ba632d03877f2426ce97c5b98317de2c1884e6941c42
7
+ data.tar.gz: 6a92d64cba31f6a322eeb5e34e3b478c54fa1a376c72e51e3c584089a1d1e6d276b37713c4e2abc92c5e1bab4d7c9cf978504e81f70cfb6af9c0e2209511cd24
@@ -1,8 +1,13 @@
1
1
  module Train::Platforms::Detect::Helpers
2
2
  module Windows
3
3
  def detect_windows
4
+ check_cmd || check_powershell
5
+ end
6
+
7
+ def check_cmd
4
8
  # try to detect windows, use cmd.exe to also support Microsoft OpenSSH
5
9
  res = @backend.run_command("cmd.exe /c ver")
10
+
6
11
  return false if (res.exit_status != 0) || res.stdout.empty?
7
12
 
8
13
  # if the ver contains `Windows`, we know its a Windows system
@@ -13,16 +18,29 @@ module Train::Platforms::Detect::Helpers
13
18
 
14
19
  # try to extract release from eg. `Microsoft Windows [Version 6.3.9600]`
15
20
  release = /\[(?<name>.*)\]/.match(version)
16
- unless release[:name].nil?
21
+ if release[:name]
17
22
  # release is 6.3.9600 now
18
23
  @platform[:release] = release[:name].downcase.gsub("version", "").strip
19
24
  # fallback, if we are not able to extract the name from wmic later
20
25
  @platform[:name] = "Windows #{@platform[:release]}"
21
26
  end
22
27
 
23
- # try to use wmic, but lets keep it optional
24
28
  read_wmic
29
+ true
30
+ end
25
31
 
32
+ def check_powershell
33
+ command = @backend.run_command(
34
+ "Get-WmiObject Win32_OperatingSystem | Select Caption,Version | ConvertTo-Json"
35
+ )
36
+ return false if (command.exit_status != 0) || command.stdout.empty?
37
+
38
+ payload = JSON.parse(command.stdout)
39
+ @platform[:family] = "windows"
40
+ @platform[:release] = payload["Version"]
41
+ @platform[:name] = payload["Caption"]
42
+
43
+ read_wmic
26
44
  true
27
45
  end
28
46
 
@@ -3,5 +3,5 @@
3
3
  # Author:: Dominik Richter (<dominik.richter@gmail.com>)
4
4
 
5
5
  module Train
6
- VERSION = "3.1.3".freeze
6
+ VERSION = "3.1.4".freeze
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: train-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.3
4
+ version: 3.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominik Richter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-30 00:00:00.000000000 Z
11
+ date: 2019-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json