lib/omnibus/packager.rb in omnibus-5.3.0 vs lib/omnibus/packager.rb in omnibus-5.4.0
- old
+ new
@@ -15,18 +15,20 @@
#
module Omnibus
module Packager
include Logging
+ include Sugarable
autoload :Base, 'omnibus/packagers/base'
autoload :BFF, 'omnibus/packagers/bff'
autoload :DEB, 'omnibus/packagers/deb'
autoload :Makeself, 'omnibus/packagers/makeself'
autoload :MSI, 'omnibus/packagers/msi'
autoload :PKG, 'omnibus/packagers/pkg'
autoload :Solaris, 'omnibus/packagers/solaris'
+ autoload :IPS, 'omnibus/packagers/ips'
autoload :RPM, 'omnibus/packagers/rpm'
#
# The list of Ohai platform families mapped to the respective packager
# class.
@@ -38,11 +40,12 @@
'fedora' => RPM,
'suse' => RPM,
'rhel' => RPM,
'wrlinux' => RPM,
'aix' => BFF,
- 'solaris2' => Solaris,
+ 'solaris' => Solaris,
+ 'ips' => IPS,
'windows' => MSI,
'mac_os_x' => PKG,
}.freeze
#
@@ -54,18 +57,23 @@
#
# @return [~Packager::Base]
#
def for_current_system
family = Ohai['platform_family']
+ version = Ohai['platform_version']
+ if family == 'solaris2' && Chef::Sugar::Constraints::Version.new(version).satisfies?('>= 5.11')
+ family = "ips"
+ elsif family == 'solaris2' && Chef::Sugar::Constraints::Version.new(version).satisfies?('>= 5.10')
+ family = "solaris"
+ end
if klass = PLATFORM_PACKAGER_MAP[family]
klass
else
log.warn(log_key) do
"Could not determine packager for `#{family}', defaulting " \
"to `makeself'!"
end
-
Makeself
end
end
module_function :for_current_system
end