Class: IESD::DMG::BaseSystem

Inherits:
HDIUtil::DMG show all
Defined in:
lib/iesd/InstallESD/BaseSystem.dmg.rb

Direct Known Subclasses

InstallESD::BaseSystem

Defined Under Namespace

Classes: Extensions

Constant Summary collapse

PACKAGES =
%w{ System Installation Packages }

Instance Attribute Summary

Attributes inherited from HDIUtil::DMG

#url

Instance Method Summary collapse

Methods inherited from HDIUtil::DMG

#edit, #initialize, #show, #update, #valid?

Constructor Details

This class inherits a constructor from HDIUtil::DMG

Instance Method Details

#export(options) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/iesd/InstallESD/BaseSystem.dmg.rb', line 6

def export options
  case options[:type]
  when :BaseSystem, nil
    Dir.mktmpdir { |tmp|
      HDIUtil.write(@url, (tmpfile = File.join(tmp, File.basename(@url))), options[:hdiutil]) { |volume_root|
        options[:extensions][:up_to_date] = (options[:extensions][:remove].empty? and options[:extensions][:install].empty?)
        options[:mach_kernel] = File.exist? File.join(volume_root, "mach_kernel") if options[:mach_kernel].nil?

        yield volume_root if block_given?

        pre_update_extension volume_root, options

        IESD::DMG::BaseSystem::Extensions.new(volume_root).update options[:extensions]

        post_update_extension volume_root, options

        if options[:interactive]
          oh1 "Starting Interactive Shell"
          puts "Environment: BaseSystem"
          HDIUtil.shell volume_root
        end
      }
      system(Utility::MV, tmpfile, options[:output])
    }
  else
    raise "invalid output type"
  end
end