Class: IESD::Extensions

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

Direct Known Subclasses

DMG::BaseSystem::Extensions

Constant Summary collapse

EXTENSIONS =
%w{ System Library Extensions }
EXTRA_EXTENSIONS =
%w{ Library Extensions }

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(volume_root) ⇒ Extensions

Returns a new instance of Extensions.



8
9
10
11
12
# File 'lib/iesd/InstallESD/Extensions.rb', line 8

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)

Returns the value of attribute url.



6
7
8
# File 'lib/iesd/InstallESD/Extensions.rb', line 6

def url
  @url
end

#volume_rootObject (readonly)

Returns the value of attribute volume_root.



6
7
8
# File 'lib/iesd/InstallESD/Extensions.rb', line 6

def volume_root
  @volume_root
end

Instance Method Details

#install(kexts) ⇒ Object



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



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/iesd/InstallESD/Extensions.rb', line 14

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