Class: IESD::Packages::OSInstall

Inherits:
PKGUtil::PKG show all
Defined in:
lib/iesd/InstallESD/Packages/OSInstall.pkg.rb

Overview

OSInstall.pkg

Instance Attribute Summary

Attributes inherited from PKGUtil::PKG

#url

Instance Method Summary collapse

Methods inherited from PKGUtil::PKG

#edit, #initialize, #show, #update

Constructor Details

This class inherits a constructor from PKGUtil::PKG

Instance Method Details

#postinstall_extensions(extensions) ⇒ Object

Create the postinstall script for extensions.

extensions - The Extensions to update.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/iesd/InstallESD/Packages/OSInstall.pkg.rb', line 10

def postinstall_extensions extensions
  update { |pkg|
    oh1 "Creating Extensions Postinstall Script"
    script = File.join pkg, *%w{ Scripts postinstall_actions kext.tool }
    File.open(script, "a+") { |f|
      f.puts("#!/bin/sh")
      extensions[:uninstall].each { |kext|
        f.puts(%Q{logger -p install.info "Uninstalling #{kext}"})
        f.puts(%Q{/bin/test -e "$3%{extra_extensions_kext}" && /bin/rm -rf "$3%{extra_extensions_kext}" || /bin/rm -rf "$3%{extensions_kext}"} % {
          :extensions_kext => "/System/Library/Extensions/#{kext}",
          :extra_extensions_kext => "/Library/Extensions/#{kext}"
        })
      }
      extensions[:install].each { |kext|
        f.puts(%Q{logger -p install.info "Installing #{File.basename kext}"})
        f.puts(%Q{/bin/test -e "%{extensions_kext}" && /usr/bin/ditto "%{extensions_kext}" "$3%{extensions_kext}" || /usr/bin/ditto "%{extra_extensions_kext}" "$3%{extra_extensions_kext}"} % {
          :extensions_kext => "/System/Library/Extensions/#{File.basename kext}",
          :extra_extensions_kext => "/Library/Extensions/#{File.basename kext}"
        })
      }
    }
    File.chmod(0755, script)
    puts "Created: #{script}"
  }
end