<installer-gui-script minSpecVersion='1'>
<options
mpkg="com.apple.mpkg.OSInstall.UserDVD"
eraseOptionAvailable='true'
/>
<title>MacOSX_Title</title>
<license file="License.rtf"/>
<welcome file='Welcome.rtfd'/>
<script>
function checkSupportedMachine(machineType){
// if we can't find it, assume it's supported
return true;
}
function checkSupportedBootRom(machineType){
// if we can't find it, assume it's supported
return true;
}
function installCheckScript(){
return true;
}
function volCheckScript(){
return true;
}
//This function checks if a language is already installed on disk.
//This function could potentially be expensive, but the buffer cache
//usually means it isn't.
function language_installed(langKey){
var installed = false;
//If we are erasing, then nothing will be installed
//on the disk
if(my.target.ignoreContents){
return installed;
}
var constructedPath = my.target.mountpoint + '/System/Library/PrivateFrameworks/SetupAssistant.framework/Versions/A/Resources/';
constructedPath += langKey + ".lproj";
if(system.files.fileExistsAtPath(constructedPath)){
installed = true;
}else{
installed = false;
}
return installed;
}
function language_running(langKey){
var appleLanguages = system.defaults['AppleLanguages'];
if(!appleLanguages || (appleLanguages.length == 0))
return ((langKey == 'English') || (langKey == 'en'))
return (langKey == appleLanguages[0]);
}
//Global Language Required Cache, this speeds up the many calls to this function
gLanguageRequired = {
};
//Function returns true if the langKey is required, it uses a cache so that the logic doesn't
//have to be run hundreds of times
function language_required(langKey){
if(! (gLanguageRequired[langKey])){
var required = false;
//If the exact same package is on disk, then this language is not required
if(my.choice.packages.length && !my.target.ignoreContents){
var thisPackage = my.choice.packages[0];
var receipt = my.target.receiptForIdentifier(thisPackage.identifier);
if(receipt){
//system.log('package = ' + thisPackage.identifier + ':' + thisPackage.version);
//system.log('receipt = ' + receipt.identifier + ':' + receipt.version);
if(0 == system.numericalCompare(thisPackage.version,receipt.version)){
required = false;
}
}
}
if(language_installed(langKey) || language_running(langKey)){
required = true;
}
gLanguageRequired[langKey] = required;
}
return gLanguageRequired[langKey];
}
function language_enabled(langKey){
var enabled = !(language_required(langKey));
if(false == enabled){
my.choice.tooltip = system.localizedString('TT_Language_Required_message');
}
return enabled;
}
function language_selected(langKey){
var selected = my.choice.selected || language_required(langKey);
return selected;
}
function upgrade_allowed(){
var argv = upgrade_allowed.arguments;
var upgradable = true;
var upgradeAction = my.choice.packageUpgradeAction;
if(argv.length > 0) {
upgradeAction = eval('choices.' + argv[0] + '.packageUpgradeAction');
}
if((upgradeAction == 'downgrade') || (upgradeAction == 'mixed')){
my.choice.tooltip = system.localizedString('TT_Newer_Package_Installed_message');
upgradable = false;
}
return upgradable;
}
</script>
<installation-check script="installCheckScript()"/>
<volume-check script="volCheckScript()"/>