lib/mixlib/install.rb in mixlib-install-0.8.0.alpha.8 vs lib/mixlib/install.rb in mixlib-install-1.0.0

- old
+ new

@@ -16,10 +16,11 @@ # See the License for the specific language governing permissions and # limitations under the License. # require "mixlib/versioning" +require "mixlib/shellout" require "mixlib/install/backend" require "mixlib/install/options" require "mixlib/install/generator" require "mixlib/install/generator/bourne" @@ -35,12 +36,14 @@ end # # Fetch artifact metadata information # - # @return [ArtifactInfo] fetched artifact data - # + # @return [Array<ArtifactInfo>] list of fetched artifact data for the configured + # channel, product name, and product version. + # @return [ArtifactInfo] fetched artifact data for the configured + # channel, product name, product version and platform info def artifact_info Backend.info(options) end # @@ -92,11 +95,13 @@ # Returns true if an upgradable version is available, false otherwise. # def upgrade_available? return true if current_version.nil? - available_ver = Mixlib::Versioning.parse(artifact_info.first.version) + artifact = artifact_info + artifact = artifact.first if artifact.is_a? Array + available_ver = Mixlib::Versioning.parse(artifact.version) current_ver = Mixlib::Versioning.parse(current_version) (available_ver > current_ver) end # @@ -109,14 +114,17 @@ # # Returns a Hash containing the platform info options # def self.detect_platform - platform_info = if RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ - `#{self.detect_platform_ps1}`.split - else - `#{self.detect_platform_sh}`.split - end + detect_command = if Gem.win_platform? + Mixlib::ShellOut.new(self.detect_platform_ps1) + else + Mixlib::ShellOut.new(self.detect_platform_sh) + end + + detect_command.run_command + platform_info = detect_command.stdout.split { platform: platform_info[0], platform_version: platform_info[1], architecture: platform_info[2],