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],