cem_win_spec 0.1.2 → 0.1.4

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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cem_win_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heston Snodgrass
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-13 00:00:00.000000000 Z
11
+ date: 2023-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: winrm
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
- - !ruby/object:Gem::Dependency
42
- name: tty-spinner
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.9'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.9'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: puppet_forge
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -119,16 +105,17 @@ files:
119
105
  - lib/cem_win_spec/logging/formatter.rb
120
106
  - lib/cem_win_spec/module_archive_builder.rb
121
107
  - lib/cem_win_spec/rake_tasks.rb
122
- - lib/cem_win_spec/remote_command.rb
123
108
  - lib/cem_win_spec/rspec_test_cmds.rb
124
109
  - lib/cem_win_spec/test_runner.rb
125
110
  - lib/cem_win_spec/version.rb
126
111
  - lib/cem_win_spec/win_exec.rb
127
- - lib/cem_win_spec/win_exec/base_exec.rb
112
+ - lib/cem_win_spec/win_exec/cmd/base_cmd.rb
113
+ - lib/cem_win_spec/win_exec/cmd/local_cmd.rb
114
+ - lib/cem_win_spec/win_exec/cmd/winrm_cmd.rb
128
115
  - lib/cem_win_spec/win_exec/connection_opts.rb
129
- - lib/cem_win_spec/win_exec/local_exec.rb
116
+ - lib/cem_win_spec/win_exec/exec.rb
117
+ - lib/cem_win_spec/win_exec/factory.rb
130
118
  - lib/cem_win_spec/win_exec/output.rb
131
- - lib/cem_win_spec/win_exec/winrm_exec.rb
132
119
  - sig/cem_win_spec.rbs
133
120
  homepage: https://github.com/hsnodgrass/cem_win_spec
134
121
  licenses:
@@ -152,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
139
  - !ruby/object:Gem::Version
153
140
  version: '0'
154
141
  requirements: []
155
- rubygems_version: 3.1.4
142
+ rubygems_version: 3.4.10
156
143
  signing_key:
157
144
  specification_version: 4
158
145
  summary: Write a short summary, because RubyGems requires one.
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'iap_tunnel'
4
- require_relative 'win_exec'
5
-
6
- module CemWinSpec
7
- # Class for running a command on a remote Windows host
8
- class RemoteCommand
9
- attr_reader :title, :result
10
-
11
- def initialize(title, iap_tunnel: nil, reuse_tunnel: true, winrm_opts: {}, &block)
12
- @title = title
13
- @iap_tunnel = iap_tunnel || IapTunnel.new
14
- @reuse_tunnel = reuse_tunnel
15
- @winrm_opts = winrm_opts
16
- @block = block
17
- @win_exec = WinExec.new('localhost', @iap_tunnel.port, winrm_opts: winrm_opts)
18
- @result = nil
19
- end
20
-
21
- def ran?
22
- !@result.nil?
23
- end
24
-
25
- def success?
26
- @result.is_a? WinRM::Output
27
- end
28
-
29
- def run
30
- puts "Running #{@title}"
31
- @result = if @reuse_tunnel
32
- @iap_tunnel.start # ensure tunnel is running
33
- @block.call @win_exec
34
- else
35
- @iap_tunnel.stop # ensure tunnel is stopped
36
- @iap_tunnel.with do # start tunnel for this block
37
- @block.call @win_exec
38
- end
39
- end
40
- @result
41
- rescue StandardError => e
42
- puts "Error running #{@title}: #{e}"
43
- @result = e
44
- raise @result
45
- end
46
- end
47
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../logging'
4
-
5
- module CemWinSpec
6
- module WinExec
7
- class BaseExec
8
- include CemWinSpec::Logging
9
-
10
- attr_accessor :working_dir
11
-
12
- def initialize(working_dir = nil)
13
- @working_dir = working_dir
14
- end
15
-
16
- def available?
17
- raise NotImplementedError
18
- end
19
-
20
- def exec(cmd, *_args, **_kwargs)
21
- raise NotImplementedError
22
- end
23
-
24
- private
25
-
26
- def cd_working_dir(cmd)
27
- return cmd if working_dir.nil?
28
-
29
- "cd #{working_dir}; #{cmd}"
30
- end
31
-
32
- def cmd_prefix_msg
33
- prefix = 'Executing command'
34
- working_dir.nil? ? "#{prefix}:\n" : "#{prefix} in #{working_dir}:\n"
35
- end
36
-
37
- def puts_cmd(cmd)
38
- logger.debug "#{cmd_prefix_msg}#{cmd.split(%r{\n|\r\n|;\s*}).map { |c| " #> #{c}" }.join("\n")}"
39
- end
40
- end
41
- end
42
- end