Index: trunk/PackageBuilder/Scripts/Standard/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Standard/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Standard/postinstall (revision 133)
@@ -0,0 +1,230 @@
+#!/bin/bash
+
+
+diskloader="boot0"
+partitionloader="boot1h"
+filesystemloader="boot"
+
+diskmicrocodetype[1]="GRUB,47525542"
+diskmicrocodetype[2]="LILO,4c494c4f"
+
+start ()
+{
+# 1 volume
+
+bootvolume="${@}"
+echo "Volume is $bootvolume"
+bootresources="${0%/*}"
+echo "$bootresources"
+
+if [ -z "${bootvolume}" ]; then
+ echo
+ echo "Cannot find the volume. Exiting."
+ echo
+ exit
+fi
+
+bootdev=$( df "${bootvolume}" | sed -n '2p' | awk '{print $1}' )
+bootrdev=${bootdev/disk/rdisk}
+
+if [ "${bootdev}" = "${bootdev#*disk*s}" ]; then
+ echo
+ echo "ERROR Volume does not use slices."
+ echo
+ exit
+fi
+
+bootdisk=${bootdev%s*}
+bootrdisk=${bootdisk/disk/rdisk}
+bootslice=${bootdev#*disk*s}
+
+echo "Volume is ${bootvolume}"
+echo "Volume device is ${bootdev}"
+echo "Volume raw device is ${bootrdev}"
+echo "Volume slice is ${bootslice}"
+echo "Disk device is ${bootdisk}"
+echo "Disk raw device is ${bootrdisk}"
+echo "Disk loader is ${diskloader}"
+echo "Partition loader is ${partitionloader}"
+echo "Filesystem loader is ${filesystemloader}"
+echo "Boot Resources is ${bootresources}"
+
+}
+
+checkdiskmicrocodetype ()
+{
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+diskmicrocodetypecounter=0
+while [ ${diskmicrocodetypecounter} -lt ${#diskmicrocodetype[@]} ]; do
+ diskmicrocodetypecounter=$(( ${diskmicrocodetypecounter} + 1 ))
+ diskmicrocodetypeid=${diskmicrocodetype[${diskmicrocodetypecounter}]#*,}
+ if [ ! "${diskmicrocode}" = "${diskmicrocode/${diskmicrocodetypeid}/}" ]; then
+ echo "${diskmicrocodetype[${diskmicrocodetypecounter}]%,*} found."
+ fi
+done
+}
+
+checkdiskmicrocode ()
+{
+# 1 action ( check or set )
+
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+diskmicrocodemd5=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | md5 )
+
+if [ $( echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) = 874 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No disk microcode found. Updating."
+ diskupdate=true
+ else
+ echo "No disk microcode found."
+ fi
+else
+ if [ ${1} = set ]; then
+ echo "Disk microcode found. Preserving."
+ else
+ echo "Disk microcode found."
+ fi
+ echo "Disk microcode MD5 is ${diskmicrocodemd5}"
+fi
+}
+
+checkdisksignature ()
+{
+disksignature=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=4 bs=1 skip=440 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${disksignature}" | awk -F0 '{print NF-1}' ) = 8 ]; then
+ echo "No disk signature found."
+else
+ echo "Disk signature found."
+ echo "Disk signature is 0x${disksignature}"
+fi
+}
+
+checkpartitionbootcode ()
+{
+# 1 action ( check or set )
+
+partitionbootcode=$( dd if=${bootrdev} count=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+partitionbootcodeextended=$( dd if=${bootrdev} count=1 skip=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${partitionbootcode}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No partition bootcode found. Updating."
+ else
+ echo "No partition bootcode found."
+ fi
+else
+ if [ "${1}" = "set" ]; then
+ echo "Partition bootcode found. Overwriting."
+ else
+ echo "Partition bootcode found."
+ fi
+ if [ $( echo "${partitionbootcodeextended}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=1 | md5 )
+ else
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=2 | md5 )
+ echo "Partition bootcode is dual sector."
+ fi
+ echo "Partition bootcode MD5 is ${partitionbootcodemd5}"
+fi
+}
+
+checkpartitionactive ()
+{
+partitionactive=$( fdisk440 -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}')
+
+if [ -n "${partitionactive}" ]; then
+ echo "Partition flagged active is ${partitionactive}"
+else
+ echo "No partition flagged active."
+fi
+
+}
+
+start ${3}
+
+#partitiontable=$( diskutil list ${bootdisk} | sed -n '3p' | awk '{print $2}' )
+#[ "${partitiontable}" = "GUID_partition_scheme" ] && echo "GPT found."
+#[ "${partitiontable}" = "FDisk_partition_scheme" ] && echo "MBR found."
+#[ "${partitiontable}" = "Apple_partition_scheme" ] && echo "APT found." && exit
+
+partitiontable=$( dd 2>/dev/null if=${bootdisk} count=1 skip=1 | dd 2>/dev/null count=8 bs=1 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+if [ "${partitiontable:0:16}" == "4546492050415254" ]; then
+ partitiontable=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=64 bs=1 skip=446 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+ if [ "${partitiontable:8:2}" == "ee" ]; then
+ if [ "${partitiontable:40:2}" == "00" ] && [ "${partitiontable:72:2}" == "00" ] && [ "${partitiontable:104:2}" == "00" ]; then
+ partitiontable="GPT"
+ else
+ partitiontable="GPT/MBR"
+ fi
+ fi
+else
+ partitiontable="MBR"
+fi
+
+echo "${partitiontable} found."
+
+diskupdate=false
+
+checkdiskmicrocodetype
+checkdiskmicrocode set
+checkdisksignature
+checkpartitionbootcode set
+checkpartitionactive
+
+if ${diskupdate}; then
+ echo "Executing command: fdisk -u -f /usr/standalone/i386/${diskloader} -y ${bootdisk}"
+ fdisk -u -f "${bootvolume}/usr/standalone/i386/${diskloader}" -y ${bootdisk}
+fi
+
+echo "Executing command: dd if=/usr/standalone/i386/${partitionloader} of=${bootrdev}"
+dd if="${bootvolume}/usr/standalone/i386/${partitionloader}" of=${bootrdev}
+
+echo "Executing command: cp /usr/standalone/i386/${filesystemloader} ${bootvolume}"
+cp "${bootvolume}/usr/standalone/i386/${filesystemloader}" "${bootvolume}"
+
+echo "Executing command: ${bootresources}/Tools/SetFile -a V ${bootvolume}/${filesystemloader}"
+"${bootresources}/Tools/SetFile" -a V "${bootvolume}/${filesystemloader}"
+
+# If table is GPT make the first partition active (BadAxe compatibility).
+#[ "${partitiontable}" = "GPT" ] && bootslice=1
+fdisk440 -e ${bootdisk} <<-MAKEACTIVE
+print
+flag ${bootslice}
+write
+y
+quit
+MAKEACTIVE
+
+checkdiskmicrocode check
+checkdisksignature
+checkpartitionbootcode check
+checkpartitionactive
+
+# Check efi partition
+if [ -d /Volumes/EFI ]; then
+ umount -f /Volumes/EFI
+ rm -R -f /Volumes/EFI
+fi
+
+if [ -d "${bootvolume}/Extra/Extensions" ]; then
+# echo "Executing command: mkdir -p ${bootvolume}/Extra/Extensions"
+ mkdir -p "${bootvolume}/ExtraBackup"
+ cp -f -R "${bootvolume}/Extra" "${bootvolume}/ExtraBackup"
+ rm -f -R "${bootvolume}/Extra"
+fi
+# unpack any existing Extensions.mkext already on the booter volume
+if [ -f "${2}/ExtraBackup/Extensions.mkext" ]; then
+ echo "Executing command: mkextunpack -d ${2}/Extra/Extensions ${2}/ExtraBackup/Extensions.mkext"
+ mkextunpack -d "${2}/.Chameleon/Extra/Extensions" "${2}/.Chameleon/ExtraBackup/Extensions.mkext"
+ echo "Executing command: rm -R -f ${2}/ExtraBackup/Extensions.mkext"
+ rm -R -f "${2}/ExtraBackup/Extensions.mkext"
+fi
+
+# setup link for extras
+#[ -h "${2}/.Chameleon" ] && unlink "${2}/.Chameleon"
+#echo "Executing command: ln -s . ${2}/.Chameleon"
+#ln -s "${2}" "${2}/.Chameleon"
+
+exit
\ No newline at end of file
Property changes on: trunk/PackageBuilder/Scripts/Standard/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: trunk/PackageBuilder/Scripts/Standardhfs/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Standardhfs/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Standardhfs/postinstall (revision 133)
@@ -0,0 +1,230 @@
+#!/bin/bash
+
+
+diskloader="boot0hfs"
+partitionloader="boot1h"
+filesystemloader="boot"
+
+diskmicrocodetype[1]="GRUB,47525542"
+diskmicrocodetype[2]="LILO,4c494c4f"
+
+start ()
+{
+# 1 volume
+
+bootvolume="${@}"
+echo "Volume is $bootvolume"
+bootresources="${0%/*}"
+echo "$bootresources"
+
+if [ -z "${bootvolume}" ]; then
+ echo
+ echo "Cannot find the volume. Exiting."
+ echo
+ exit
+fi
+
+bootdev=$( df "${bootvolume}" | sed -n '2p' | awk '{print $1}' )
+bootrdev=${bootdev/disk/rdisk}
+
+if [ "${bootdev}" = "${bootdev#*disk*s}" ]; then
+ echo
+ echo "ERROR Volume does not use slices."
+ echo
+ exit
+fi
+
+bootdisk=${bootdev%s*}
+bootrdisk=${bootdisk/disk/rdisk}
+bootslice=${bootdev#*disk*s}
+
+echo "Volume is ${bootvolume}"
+echo "Volume device is ${bootdev}"
+echo "Volume raw device is ${bootrdev}"
+echo "Volume slice is ${bootslice}"
+echo "Disk device is ${bootdisk}"
+echo "Disk raw device is ${bootrdisk}"
+echo "Disk loader is ${diskloader}"
+echo "Partition loader is ${partitionloader}"
+echo "Filesystem loader is ${filesystemloader}"
+echo "Boot Resources is ${bootresources}"
+
+}
+
+checkdiskmicrocodetype ()
+{
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+diskmicrocodetypecounter=0
+while [ ${diskmicrocodetypecounter} -lt ${#diskmicrocodetype[@]} ]; do
+ diskmicrocodetypecounter=$(( ${diskmicrocodetypecounter} + 1 ))
+ diskmicrocodetypeid=${diskmicrocodetype[${diskmicrocodetypecounter}]#*,}
+ if [ ! "${diskmicrocode}" = "${diskmicrocode/${diskmicrocodetypeid}/}" ]; then
+ echo "${diskmicrocodetype[${diskmicrocodetypecounter}]%,*} found."
+ fi
+done
+}
+
+checkdiskmicrocode ()
+{
+# 1 action ( check or set )
+
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+diskmicrocodemd5=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | md5 )
+
+if [ $( echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) = 874 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No disk microcode found. Updating."
+ diskupdate=true
+ else
+ echo "No disk microcode found."
+ fi
+else
+ if [ ${1} = set ]; then
+ echo "Disk microcode found. Preserving."
+ else
+ echo "Disk microcode found."
+ fi
+ echo "Disk microcode MD5 is ${diskmicrocodemd5}"
+fi
+}
+
+checkdisksignature ()
+{
+disksignature=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=4 bs=1 skip=440 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${disksignature}" | awk -F0 '{print NF-1}' ) = 8 ]; then
+ echo "No disk signature found."
+else
+ echo "Disk signature found."
+ echo "Disk signature is 0x${disksignature}"
+fi
+}
+
+checkpartitionbootcode ()
+{
+# 1 action ( check or set )
+
+partitionbootcode=$( dd if=${bootrdev} count=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+partitionbootcodeextended=$( dd if=${bootrdev} count=1 skip=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${partitionbootcode}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ if [ "${1}" = "set" ]; then
+ echo "No partition bootcode found. Updating."
+ else
+ echo "No partition bootcode found."
+ fi
+else
+ if [ "${1}" = "set" ]; then
+ echo "Partition bootcode found. Overwriting."
+ else
+ echo "Partition bootcode found."
+ fi
+ if [ $( echo "${partitionbootcodeextended}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=1 | md5 )
+ else
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=2 | md5 )
+ echo "Partition bootcode is dual sector."
+ fi
+ echo "Partition bootcode MD5 is ${partitionbootcodemd5}"
+fi
+}
+
+checkpartitionactive ()
+{
+partitionactive=$( fdisk440 -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}')
+
+if [ -n "${partitionactive}" ]; then
+ echo "Partition flagged active is ${partitionactive}"
+else
+ echo "No partition flagged active."
+fi
+
+}
+
+start ${3}
+
+#partitiontable=$( diskutil list ${bootdisk} | sed -n '3p' | awk '{print $2}' )
+#[ "${partitiontable}" = "GUID_partition_scheme" ] && echo "GPT found."
+#[ "${partitiontable}" = "FDisk_partition_scheme" ] && echo "MBR found."
+#[ "${partitiontable}" = "Apple_partition_scheme" ] && echo "APT found." && exit
+
+partitiontable=$( dd 2>/dev/null if=${bootdisk} count=1 skip=1 | dd 2>/dev/null count=8 bs=1 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+if [ "${partitiontable:0:16}" == "4546492050415254" ]; then
+ partitiontable=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=64 bs=1 skip=446 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+ if [ "${partitiontable:8:2}" == "ee" ]; then
+ if [ "${partitiontable:40:2}" == "00" ] && [ "${partitiontable:72:2}" == "00" ] && [ "${partitiontable:104:2}" == "00" ]; then
+ partitiontable="GPT"
+ else
+ partitiontable="GPT/MBR"
+ fi
+ fi
+else
+ partitiontable="MBR"
+fi
+
+echo "${partitiontable} found."
+
+diskupdate=false
+
+checkdiskmicrocodetype
+checkdiskmicrocode set
+checkdisksignature
+checkpartitionbootcode set
+checkpartitionactive
+
+if ${diskupdate}; then
+ echo "Executing command: fdisk -u -f /usr/standalone/i386/${diskloader} -y ${bootdisk}"
+ fdisk -u -f "${bootvolume}/usr/standalone/i386/${diskloader}" -y ${bootdisk}
+fi
+
+echo "Executing command: dd if=/usr/standalone/i386/${partitionloader} of=${bootrdev}"
+dd if="${bootvolume}/usr/standalone/i386/${partitionloader}" of=${bootrdev}
+
+echo "Executing command: cp /usr/standalone/i386/${filesystemloader} ${bootvolume}"
+cp "${bootvolume}/usr/standalone/i386/${filesystemloader}" "${bootvolume}"
+
+echo "Executing command: ${bootresources}/Tools/SetFile -a V ${bootvolume}/${filesystemloader}"
+"${bootresources}/Tools/SetFile" -a V "${bootvolume}/${filesystemloader}"
+
+# If table is GPT make the first partition active (BadAxe compatibility).
+[ "${partitiontable}" = "GPT" ] && bootslice=1
+fdisk440 -e ${bootdisk} <<-MAKEACTIVE
+print
+flag ${bootslice}
+write
+y
+quit
+MAKEACTIVE
+
+checkdiskmicrocode check
+checkdisksignature
+checkpartitionbootcode check
+checkpartitionactive
+
+# Check efi partition
+if [ -d /Volumes/EFI ]; then
+ umount -f /Volumes/EFI
+ rm -R -f /Volumes/EFI
+fi
+
+if ! [ -d "${bootvolume}/Extra/Extensions" ]; then
+# echo "Executing command: mkdir -p ${bootvolume}/Extra/Extensions"
+ mkdir -p "${bootvolume}/ExtraBackup"
+ cp -f -R "${bootvolume}/Extra" "${bootvolume}/ExtraBackup"
+ rm -f -R "${bootvolume}/Extra"
+fi
+# unpack any existing Extensions.mkext already on the booter volume
+if [ -f "${2}/ExtraBackup/Extensions.mkext" ]; then
+ echo "Executing command: mkextunpack -d ${2}/Extra/Extensions ${2}/ExtraBackup/Extensions.mkext"
+ mkextunpack -d "${2}/.Chameleon/Extra/Extensions" "${2}/.Chameleon/ExtraBackup/Extensions.mkext"
+ echo "Executing command: rm -R -f ${2}/ExtraBackup/Extensions.mkext"
+ rm -R -f "${2}/ExtraBackup/Extensions.mkext"
+fi
+
+# setup link for extras
+#[ -h "${2}/.Chameleon" ] && unlink "${2}/.Chameleon"
+#echo "Executing command: ln -s . ${2}/.Chameleon"
+#ln -s "${2}" "${2}/.Chameleon"
+
+exit
\ No newline at end of file
Property changes on: trunk/PackageBuilder/Scripts/Standardhfs/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: trunk/PackageBuilder/Scripts/Post/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Post/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Post/postinstall (revision 133)
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+temp="/private/tmp/Chameleon"
+
+#source com.apple.boot.plist
+if ! [ -f "${2}/.Chameleon/Extra/com.apple.Boot.plist" ]; then
+ if [ -f "${2}/Library/Preferences/SystemConfiguration/com.apple.Boot.plist" ]; then
+ cp -f "${2}/Library/Preferences/SystemConfiguration/com.apple.Boot.plist" "${2}/.Chameleon/Extra"
+ fi
+fi
+
+# fix kext permissions
+find "${2}/.Chameleon/Extra/Extensions" -type f -exec chmod 644 {} \;
+find "${2}/.Chameleon/Extra/Extensions" -type d -exec chmod 755 {} \;
+chown -R 0:0 "${2}/.Chameleon/Extra/Extensions"
+
+# build mkext for extras
+[ -d "${temp}" ] && rm -R -f "${temp}"
+mkdir -p "${temp}/Extensions"
+ditto --noextattr --noqtn --arch i386 "${2}/.Chameleon/Extra/Extensions" "${temp}/Extensions"
+find "${temp}" -type f -exec chmod 644 {} \;
+find "${temp}" -type d -exec chmod 755 {} \;
+chown -R 0:0 "${temp}"
+kextcache -m "${temp}/Extensions.mkext" "${temp}/Extensions"
+cp -f "${temp}/Extensions.mkext" "${2}/.Chameleon/Extra"
+#cp -f "${temp}/Extensions.mkext" "${2}/Extra"
+rm -f -R "${temp}"
+
+# Check efi partition
+if [ -d /Volumes/EFI ]; then
+
+# remove link for extras install
+#unlink -r "${2}/.Chameleon"
+
+ cp -R -f "${2}/.Chameleon/Extra" /Volumes/EFI/
+ umount -f /Volumes/EFI
+ rm -R -f /Volumes/EFI
+ rm -R -f "${2}/.Chameleon"
+fi
+
+ cp -R -f "${2}/.Chameleon/Extra" "${2}/"
+ rm -R -f "${2}/.Chameleon"
+
+exit 0
\ No newline at end of file
Property changes on: trunk/PackageBuilder/Scripts/Post/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: trunk/PackageBuilder/Scripts/Resolutions/1024x768x32/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Resolutions/1024x768x32/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Resolutions/1024x768x32/postinstall (revision 133)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="Graphics Mode"
+string="1024x768x32"
+
+main ()
+{
+
+ bootplist="${2}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=${string} to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Property changes on: trunk/PackageBuilder/Scripts/Resolutions/1024x768x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: trunk/PackageBuilder/Scripts/Resolutions/1920x1200x32/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Resolutions/1920x1200x32/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Resolutions/1920x1200x32/postinstall (revision 133)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="Graphics Mode"
+string="1920x1200x32"
+
+main ()
+{
+
+ bootplist="${2}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=${string} to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Property changes on: trunk/PackageBuilder/Scripts/Resolutions/1920x1200x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: trunk/PackageBuilder/Scripts/Resolutions/1600x900x32/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Resolutions/1600x900x32/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Resolutions/1600x900x32/postinstall (revision 133)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="Graphics Mode"
+string="1600x900x32"
+
+main ()
+{
+
+ bootplist="${2}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=${string} to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Property changes on: trunk/PackageBuilder/Scripts/Resolutions/1600x900x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: trunk/PackageBuilder/Scripts/Resolutions/1280x1024x32/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Resolutions/1280x1024x32/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Resolutions/1280x1024x32/postinstall (revision 133)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="Graphics Mode"
+string="1280x1024x32"
+
+main ()
+{
+
+ bootplist="${2}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=${string} to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Property changes on: trunk/PackageBuilder/Scripts/Resolutions/1280x1024x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: trunk/PackageBuilder/Scripts/Resolutions/1680x1050x32/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Resolutions/1680x1050x32/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Resolutions/1680x1050x32/postinstall (revision 133)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="Graphics Mode"
+string="1680x1050x32"
+
+main ()
+{
+
+ bootplist="${2}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=${string} to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Property changes on: trunk/PackageBuilder/Scripts/Resolutions/1680x1050x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: trunk/PackageBuilder/Scripts/Resolutions/1920x1080x32/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Resolutions/1920x1080x32/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Resolutions/1920x1080x32/postinstall (revision 133)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="Graphics Mode"
+string="1920x1080x32"
+
+main ()
+{
+
+ bootplist="${2}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=${string} to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Property changes on: trunk/PackageBuilder/Scripts/Resolutions/1920x1080x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: trunk/PackageBuilder/Scripts/Resolutions/1280x960x32/postinstall
===================================================================
--- trunk/PackageBuilder/Scripts/Resolutions/1280x960x32/postinstall (revision 0)
+++ trunk/PackageBuilder/Scripts/Resolutions/1280x960x32/postinstall (revision 133)
@@ -0,0 +1,169 @@
+#!/bin/bash
+
+# set com.apple.Boot.plist options
+
+overide="Graphics Mode"
+string="1280x960x32"
+
+main ()
+{
+
+ bootplist="${2}/.Chameleon/Extra/com.apple.Boot.plist"
+ systemplist="/Library/Preferences/SystemConfiguration/com.apple.Boot.plist"
+
+ bootoptionshdextra[1]="${overide}"
+ bootoptionshdextra[2]="${string}"
+
+ [ ! -d "${bootplist%/*}" ] && mkdir -p "${bootplist%/*}"
+
+ if [ ! -f "${bootplist}" ]; then
+ if [ -f "${systemplist}" ]; then
+ cp "${systemplist}" "${bootplist}"
+ fi
+ fi
+
+ xmlvalue=$( getxmlvalue ${overide} "${bootplist}" | tr "[:upper:]" "[:lower:]" )
+
+ case "${xmlvalue:0:1}" in
+
+ y) echo "${overide}=y already set in ${bootplist} skipping."
+ ;;
+
+ n) echo "${overide}=n is set in ${bootplist} leaving."
+ ;;
+
+ *) echo "Adding ${overide}=${string} to ${bootplist}"
+ array=("${bootoptionshdextra[@]}")
+ searchfilereplaceline "${bootplist}" "Kernel Flags" "" "" "2"
+ ;;
+ esac
+
+ chown "${USER}:20" "${bootplist}"
+}
+
+getxmlvalue ()
+{
+# 1 xml key
+# 2 xml file
+if [ -f "${2}" ]; then
+ local value
+ while read value; do
+ if [ ! "${value}" = "${value/${1}/}" ]; then
+ read value
+ value="${value#*<}" ; value="<${value}" ; value="${value#*>}" ; value="${value# *}" ; value="${value%%<*}"
+ echo "$value"
+ break
+ fi
+ done < "${2}"
+fi
+}
+
+searchfilereplaceline ()
+{
+
+mv "${1}" "${1}.orig"
+
+prefunctionifs="${IFS}"
+
+unset fileinput
+unset fileoutput
+unset find
+unset replace
+unset deletelines
+unset deletelinesskip
+unset insertlinesskip
+
+fileinput="${1}.orig"
+fileoutput="${1}"
+find="${2}"
+replace="${3}"
+deletelines="${4%,*}"
+insertlinesskip="${5}"
+
+matchlinefound="0"
+
+if [ "${#4}" = "${4#*,}" ]; then
+ deletelinesskip="0"
+ else
+ deletelinesskip="${4#*,}"
+fi
+
+IFS="\n"
+while read line
+do
+ {
+ if [ ! "${line}" = "${line/${find}/}" ]; then
+ {
+ # Trim the longest match from the end for <*
+ xmlelementindent="${line%%<*}"
+
+ # Trim the longest match from the start for *<
+ xmlelementtemp="${line#*<}"
+ # Add back in stripped <
+ xmlelement="<${xmlelementtemp}"
+
+ # Trim the shortest match from the start for <
+ xmltagtemp="${xmlelement#<}"
+ # Trim the longest match from the end for >*
+ xmltag="${xmltagtemp%%>*}"
+
+ # Trim the shortest match from the start for *>
+ xmltexttemp="${xmlelement#*>}"
+ # Trim the longest match from the end for <*
+ xmltext="${xmltexttemp%%<*}"
+
+ if [ "${replace}" ]; then
+ {
+ echo "${xmlelementindent}<${xmltag}>${replace}${xmltag}>" >>"${fileoutput}"
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+ matchlinefound="1"
+
+ }
+ else
+ {
+
+ if [ "${insertlinesskip}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -le "${insertlinesskip}" ]; then
+ {
+ if [ "${matchlinefound}" = "${insertlinesskip}" ]; then
+ {
+ arraysize=0
+ while [ ${arraysize} -lt ${#array[@]} ];
+ do
+ echo "${xmlelementindent}${array[${arraysize}]}" >>"${fileoutput}"
+ let arraysize="${arraysize}+1"
+ done
+ }
+ fi
+ }
+ fi
+
+ if [ "${deletelines}" ] && [ "${matchlinefound}" -gt 0 ] && [ "${matchlinefound}" -lt $((${deletelines}+${deletelinesskip})) ] && [ "${matchlinefound}" -ge ${deletelinesskip} ]; then
+ {
+ :
+ }
+ else
+ {
+ echo "${line}" >>"${fileoutput}"
+ }
+ fi
+
+ if [ "${matchlinefound}" -gt 0 ]; then
+ let matchlinefound="${matchlinefound}+1"
+ fi
+
+ }
+ fi
+ }
+done < "${fileinput}"
+
+IFS=${prefunctionifs}
+
+rm -f "${fileinput}"
+}
+
+main "${1}" "${2}" "${3}" "${4}"
Property changes on: trunk/PackageBuilder/Scripts/Resolutions/1280x960x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *