Class: IESD::Extensions

Inherits:
Object
  • Object
show all
Defined in:
lib/iesd/InstallESD/Extensions.rb

Overview

/System/Library/Extensions

Direct Known Subclasses

DMG::BaseSystem::Extensions

Constant Summary collapse

EXTENSIONS =

The relative path to the Extensions.

File.join %w[ System Library Extensions ]
EXTRA_EXTENSIONS =

The relative path to the Extra Extensions.

Available on Mavericks and later.

File.join %w[ Library Extensions ]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(volume_root) ⇒ Extensions

Initialize an Extensions.

volume_root - The String path to the volume root.



22
23
24
25
26
# File 'lib/iesd/InstallESD/Extensions.rb', line 22

def initialize volume_root
  @volume_root = volume_root
  @extensions = File.join @volume_root, EXTENSIONS
  @extra_extensions = File.join @volume_root, EXTRA_EXTENSIONS
end

Instance Attribute Details

#urlObject (readonly)

The String path to the Extensions.



17
18
19
# File 'lib/iesd/InstallESD/Extensions.rb', line 17

def url
  @url
end

#volume_rootObject (readonly)

The String path to the volume root.



15
16
17
# File 'lib/iesd/InstallESD/Extensions.rb', line 15

def volume_root
  @volume_root
end

Instance Method Details

#install(kexts) ⇒ Object

Install extensions.

kexts - The Array of extensions to be installed.



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/iesd/InstallESD/Extensions.rb', line 51

def install kexts
  if !kexts.empty?
    oh1 "Installing Extensions"
    kexts.each { |kext|
      kext_url = File.join(@extensions, File.basename(kext))
      if File.exist? kext_url
        system("/usr/bin/env", "ditto", kext, kext_url)
        puts "Overwrote: #{kext_url}"
      else
        kext_url = File.join(@extra_extensions, File.basename(kext)) if File.exist? @extra_extensions
        system("/usr/bin/env", "ditto", kext, kext_url)
        puts "Installed: #{kext_url}"
      end
    }
  end
end

#uninstall(kexts) ⇒ Object

Uninstall extensions.

kexts - The Array of extensions to be uninstalled.



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/iesd/InstallESD/Extensions.rb', line 31

def uninstall kexts
  if !kexts.empty?
    oh1 "Uninstalling Extensions"
    kexts.each { |kext|
      kext_url = File.join(@extra_extensions, kext)
      if File.exist? kext_url
        system("/usr/bin/env", "rm", "-rf", kext_url)
        puts "Uninstalled: #{kext_url}"
      else
        kext_url = File.join(@extensions, kext)
        system("/usr/bin/env", "rm", "-rf", kext_url)
        puts "Removed: #{kext_url}"
      end
    }
  end
end