mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-20 15:48:18 +01:00
1148542685
Signed-off-by: Sergey Isakov <isakov-sl@bk.ru>
108 lines
3.9 KiB
Bash
Executable File
108 lines
3.9 KiB
Bash
Executable File
#!/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}"/Private/tmp/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}/Private/tmp/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}/Private/tmp/boottype"
|
|
|
|
# Remove link to the partition that contain the EFI folder
|
|
rm -rf "${DEST_VOL}"/Private/tmp/EFIROOTDIR
|
|
|
|
# Remove Clover files
|
|
rm -rf "${DEST_VOL}"/Private/tmp/usr
|
|
|
|
# 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
|
|
|
|
|
|
|