Index: branches/blackosx/package/Scripts/Main/postinstall =================================================================== --- branches/blackosx/package/Scripts/Main/postinstall (revision 1661) +++ branches/blackosx/package/Scripts/Main/postinstall (revision 1662) @@ -131,17 +131,12 @@ fi if [ $kernelFlagCount -gt 0 ]; then - # Add kernel flags + # Add any kernel flags together in to one string. for (( i=0 ; i < $kernelFlagCount ; i++ )) do - # Add any kernel flags together in to one string. kernelFlagString="${kernelFlagString} ${kernelflag[i]}" done - sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP" - if [ ${returnValue}=1 ]; then # key already exists. - sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP" - sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP" - fi + # We add the final string in the next section. fi fi @@ -179,9 +174,10 @@ fi # Before merging org.chameleon.Boot.plist, copy any - # existing kernel flags. - - + # existing kernel flags, then delete the entry. + currentFlags=$( sudo /usr/libexec/plistbuddy -c "Print :Kernel\ Flags" "$tempOCBP" ) + sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP" + # Merge new org.chameleon.Boot.plist (holding.plist) # with their currently existing one. "$scriptDir"InstallLog.sh "${dest_vol}" "Merging new options into org.chameleon.Boot.plist. @@ -190,11 +186,26 @@ NOTE: For example: If you already had Wait=No as a boot option NOTE: and chose Wait=Yes from the list, this will NOT be changed." sudo /usr/libexec/plistbuddy -c "Merge $chamTemp/holding.plist" "$tempOCBP" - - # TO DO - kernel flags! - maybe read existing, delete them, re-add existing and new? + # Combine new kernel flags with old ones. + kernelFlagString="${kernelFlagString} $currentFlags" + # Write complete kernel flag entry back. + sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP" + if [ ${returnValue}=1 ]; then # key already exists. + sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP" + sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP" + fi + elif [ -e "$chamTemp/install_type_new" ]; then "$scriptDir"InstallLog.sh "${dest_vol}" "User selected to make a new install." + # Add kernel flags (if any) + if [ $kernelFlagCount -gt 0 ]; then + sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP" + if [ ${returnValue}=1 ]; then # key already exists. + sudo /usr/libexec/plistbuddy -c "Delete :Kernel\ Flags" "$tempOCBP" + sudo /usr/libexec/plistbuddy -c "Add :Kernel\ Flags string $kernelFlagString" "$tempOCBP" + fi + fi fi # ---------------------------------------------