diff --git a/lib/mixlib/install.rb b/lib/mixlib/install.rb index 048cb797..07cea815 100644 --- a/lib/mixlib/install.rb +++ b/lib/mixlib/install.rb @@ -18,7 +18,6 @@ # require "mixlib/versioning" -require "mixlib/shellout" unless defined?(Mixlib::ShellOut) require_relative "install/backend" require_relative "install/options" @@ -252,6 +251,12 @@ def detect_platform # Returns a Hash containing the platform info options # def self.detect_platform + # mixlib-shellout (and the etc, fileutils, tmpdir and fcntl trees it + # pulls in) is only needed to shell out for platform detection, so it is + # loaded here rather than at require time. + require "mixlib/shellout" unless defined?(Mixlib::ShellOut) + require "tmpdir" + output = if Gem.win_platform? # For Windows we write the detect platform script and execute the # powershell.exe program with Mixlib::ShellOut diff --git a/spec/functional/mixlib/install/cli_spec.rb b/spec/functional/mixlib/install/cli_spec.rb index 60acd6de..48e584ec 100644 --- a/spec/functional/mixlib/install/cli_spec.rb +++ b/spec/functional/mixlib/install/cli_spec.rb @@ -17,6 +17,7 @@ require "spec_helper" require "mixlib/install/cli" +require "mixlib/shellout" require "tmpdir" describe "mixlib-install executable" do