Parent

IESD::Packages::OSInstall

OSInstall.pkg

Public Instance Methods

postinstall_extensions(extensions) click to toggle source

Create the postinstall script for extensions.

extensions - The Extensions to update.

# 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, *%{ Scripts postinstall_actions kext.tool }
    File.open(script, "a+") { |f|
      f.puts("#!/bin/sh")
      extensions[:uninstall].each { |kext|
        f.puts(%{logger -p install.info "Uninstalling #{kext}"})
        f.puts(%{/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(%{logger -p install.info "Installing #{File.basename kext}"})
        f.puts(%{/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

[Validate]

Generated with the Darkfish Rdoc Generator 2.