mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-04 13:23:26 +01:00
103 lines
3.8 KiB
Plaintext
103 lines
3.8 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
echo "==============================================="
|
||
|
echo "Post Post-Install Script"
|
||
|
echo "==============================================="
|
||
|
|
||
|
#echo "DEBUG: $ 1 = Full path to the installation package the installer app is processing: " $1
|
||
|
#echo "DEBUG: $ 2 = Full path to the installation destination: " $2
|
||
|
#echo "DEBUG: $ 3 = Installation volume (mountpoint) to receive the payload: " $3
|
||
|
#echo "DEBUG: $ 4 = Root directory for the system: " $4
|
||
|
|
||
|
echo "preinstall: Path to installer....... $1"
|
||
|
echo "preinstall: Path to destination..... $2"
|
||
|
echo "preinstall: Path to dest volume..... $3"
|
||
|
echo "preinstall: Root of system folder... $4"
|
||
|
|
||
|
#############################################################################
|
||
|
|
||
|
DEST_VOL="${3}"
|
||
|
EFI_ROOT_DIR=$(cd "${DEST_VOL}"/EFIROOTDIR; pwd -P)
|
||
|
CLOVER_INSTALLER_PLIST_NEW="${DEST_VOL}@CLOVER_INSTALLER_PLIST_NEW@"
|
||
|
CLOVER_INSTALLER_PLIST="${DEST_VOL}@CLOVER_INSTALLER_PLIST@"
|
||
|
bootervolumename="EFI"
|
||
|
bootvolume="/Volumes/${bootervolumename}"
|
||
|
install_log="${DEST_VOL}/Clover_Install_Log.txt"
|
||
|
config_plist_file="${EFI_ROOT_DIR}"/EFI/CLOVER/config.plist
|
||
|
plistbuddy='/usr/libexec/PlistBuddy'
|
||
|
|
||
|
echo "" >> "${install_log}"
|
||
|
|
||
|
# Change config.plist if needed
|
||
|
boottype=$( cat "${DEST_VOL}/boottype" )
|
||
|
|
||
|
case "${boottype}" in
|
||
|
ia32) perl -i -p -e "s/arch=x86_64/arch=i386/g" "${config_plist_file}" ;;
|
||
|
x64) perl -i -p -e "s/arch=i386/arch=x86_64/g" "${config_plist_file}" ;;
|
||
|
esac
|
||
|
|
||
|
# Store last install revision
|
||
|
$plistbuddy -c "Add CloverRevision integer %CLOVERREVISION%" "$CLOVER_INSTALLER_PLIST_NEW" >/dev/null
|
||
|
|
||
|
# Get theme from config.plist
|
||
|
config_theme=''
|
||
|
if [[ -f "$config_plist_file" ]]; then
|
||
|
config_theme=$( $plistbuddy -c "Print :GUI:Theme" "$config_plist_file" 2>/dev/null )
|
||
|
fi
|
||
|
|
||
|
# Check if theme is found
|
||
|
theme_found=0
|
||
|
themes_installed=()
|
||
|
|
||
|
# Store installed themes
|
||
|
$plistbuddy -c "Add InstalledThemes array" "$CLOVER_INSTALLER_PLIST_NEW" >/dev/null
|
||
|
index=0
|
||
|
while read -r -u3 theme_plist; do
|
||
|
theme=${theme_plist%/*}
|
||
|
theme=${theme##*/}
|
||
|
$plistbuddy -c "Add InstalledThemes:$index string $theme" "$CLOVER_INSTALLER_PLIST_NEW" >/dev/null
|
||
|
[[ -n "config_theme" && "$config_theme" == "$theme" ]] && theme_found=1
|
||
|
themes_installed+=("$theme")
|
||
|
index=$((index + 1))
|
||
|
done 3< <(find "${EFI_ROOT_DIR}"/EFI/CLOVER/themes \( -iname 'theme.plist' -or -iname 'theme.svg' \) 2>/dev/null)
|
||
|
|
||
|
# Replace theme if theme directory not found
|
||
|
if [[ "$theme_found" -eq 0 ]]; then
|
||
|
[[ -n "$config_theme" ]] && echo "Theme '$config_theme' (defined in config.plist) not found !" >> "${install_log}"
|
||
|
default_theme=${themes_installed[0]}
|
||
|
if [[ -n "$default_theme" ]]; then
|
||
|
echo "Using default theme '$default_theme'" >> "${install_log}"
|
||
|
$plistbuddy -c "Delete :GUI:Theme" "$config_plist_file" &>/dev/null
|
||
|
$plistbuddy -c "Add :GUI:Theme string $default_theme" "$config_plist_file" 2>&1 >> "${install_log}"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
echo "======================================================" >> "${install_log}"
|
||
|
echo "=========== Clover EFI Installation Finish ===========" >> "${install_log}"
|
||
|
echo "======================================================" >> "${install_log}"
|
||
|
|
||
|
# ---------------------------------------------
|
||
|
# Cleanup
|
||
|
# ---------------------------------------------
|
||
|
|
||
|
if [[ -e "$install_log" && -d "${EFI_ROOT_DIR}/EFI" ]]; then
|
||
|
mv -f "$install_log" "${EFI_ROOT_DIR}/EFI/Clover_Install_Log.txt"
|
||
|
fi
|
||
|
|
||
|
if [[ -f "$CLOVER_INSTALLER_PLIST_NEW" ]]; then
|
||
|
mv -f "$CLOVER_INSTALLER_PLIST_NEW" "$CLOVER_INSTALLER_PLIST"
|
||
|
fi
|
||
|
|
||
|
# Clean up
|
||
|
rm -f "${DEST_VOL}/boottype"
|
||
|
|
||
|
# Remove link to the partition that contain the EFI folder
|
||
|
rm -rf "${DEST_VOL}"/EFIROOTDIR
|
||
|
|
||
|
# show the log as html immediately
|
||
|
# cp -R "${EFI_ROOT_DIR}/EFI/Clover_Install_Log.txt" /tmp/
|
||
|
# rm -f /tmp/Clover_Install_Log.html
|
||
|
# textutil -cat html -output /tmp/Clover_Install_Log.html /tmp/Clover_Install_Log.txt
|
||
|
# open /tmp/Clover_Install_Log.html
|
||
|
|