summaryrefslogtreecommitdiff
path: root/lib/chef/mixin/train_or_shell.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/mixin/train_or_shell.rb')
-rw-r--r--lib/chef/mixin/train_or_shell.rb29
1 files changed, 19 insertions, 10 deletions
diff --git a/lib/chef/mixin/train_or_shell.rb b/lib/chef/mixin/train_or_shell.rb
index c976094b14..6a47d52a1d 100644
--- a/lib/chef/mixin/train_or_shell.rb
+++ b/lib/chef/mixin/train_or_shell.rb
@@ -17,20 +17,16 @@
#
require "ostruct"
+require "chef/mixin/shell_out"
+require "chef/mixin/powershell_out"
+require "chef/config"
class Chef
module Mixin
module TrainOrShell
- #
- # Train #run_command returns a Train::Extras::CommandResult which
- # includes `exit_status` but Mixlib::Shellout returns exitstatus
- # This wrapper makes the result look like Mixlib::ShellOut to make it
- # easier to swap providers from #shell_out to #train_or_shell
- #
- def train_to_shellout_result(stdout, stderr, exit_status)
- status = OpenStruct.new(success?: ( exit_status == 0 ))
- OpenStruct.new(stdout: stdout, stderr: stderr, exitstatus: exit_status, status: status)
- end
+
+ include Chef::Mixin::ShellOut
+ include Chef::Mixin::PowershellOut
def train_or_shell(*args, **opts)
if Chef::Config.target_mode?
@@ -69,6 +65,19 @@ class Chef
powershell_out!(*args)
end
end
+
+ private
+
+ #
+ # Train #run_command returns a Train::Extras::CommandResult which
+ # includes `exit_status` but Mixlib::Shellout returns exitstatus
+ # This wrapper makes the result look like Mixlib::ShellOut to make it
+ # easier to swap providers from #shell_out to #train_or_shell
+ #
+ def train_to_shellout_result(stdout, stderr, exit_status)
+ status = OpenStruct.new(success?: ( exit_status == 0 ))
+ OpenStruct.new(stdout: stdout, stderr: stderr, exitstatus: exit_status, status: status)
+ end
end
end
end