PKGBUILD/MELAWY/Design/Nier-A2/melawy-refind-theme-hard-in.../ins.install

136 lines
3.6 KiB
Plaintext

post_install() {
THEME_NAME="melawy-nier-a2"
if [ -f "/etc/refind-menu-generator/theme.conf" ]; then
echo "$THEME_NAME" > "/etc/refind-menu-generator/theme.conf"
fi
echo "Searching rEFInd installation in EFI partition..."
if ! __has_esp__; then
echo "EFI partition not found" >&2
exit 1
fi
REFIND_DIR=$(find "$ESP" -type d -iname refind)
if ! [[ -d "${REFIND_DIR}" ]]; then
echo "rEFInd not installed in $ESP" >&2
exit 1
fi
echo "Found rEFInd in ${REFIND_DIR}"
EFI_BOOT_DIR=$(find "$ESP" -type d -iname boot)
if ! [[ -d "${EFI_BOOT_DIR}" ]]; then
EFI_BOOT_DIR=$(find "$ESP" -type d -iname Boot)
if ! [[ -d "${EFI_BOOT_DIR}" ]]; then
EFI_BOOT_DIR=$(find "$ESP" -type d -iname BOOT)
if ! [[ -d "${EFI_BOOT_DIR}" ]]; then
mkdir -p "$(dirname ${REFIND_DIR})/boot"
EFI_BOOT_DIR="$(dirname ${REFIND_DIR})/boot"
fi
fi
fi
REFIND_CONF_PATH="${REFIND_DIR}/refind.conf"
RESULT=$(grep "theme" $REFIND_CONF_PATH)
if [[ "$?" = "0" ]]; then
CURRENT_THEME=$(echo $RESULT | cut -d"/" -f2)
if [[ "$?" = "0" ]]; then
sed -e "s/$CURRENT_THEME/$THEME_NAME/g" -i $REFIND_CONF_PATH
fi
else
if [[ -z "$(tail -n 1 -c 1 $REFIND_CONF_PATH)" ]];then
echo "include themes/$THEME_NAME/theme.conf" >> $REFIND_CONF_PATH
else
echo -e "\ninclude themes/$THEME_NAME/theme.conf" >> $REFIND_CONF_PATH
fi
fi
cp -vf "${REFIND_DIR}/refind.conf" "${EFI_BOOT_DIR}/refind.conf"
}
post_upgrade() {
post_install
}
post_remove() {
THEME_NAME="melawy-nier-a2"
if [ -f "/etc/refind-menu-generator/theme.conf" ]; then
echo "" > "/etc/refind-menu-generator/theme.conf"
fi
echo "Removal of theme from EFI partition"
echo "Searching rEFInd installation in EFI partition..."
if ! __has_esp__; then
echo "EFI partition not found" >&2
exit 1
fi
REFIND_DIR=$(find "$ESP" -type d -iname refind)
if ! [[ -d "${REFIND_DIR}" ]]; then
echo "rEFInd not installed in $ESP" >&2
exit 1
fi
echo "Found rEFInd in ${REFIND_DIR}"
EFI_BOOT_DIR=$(find "$ESP" -type d -iname boot)
if ! [[ -d "${EFI_BOOT_DIR}" ]]; then
EFI_BOOT_DIR=$(find "$ESP" -type d -iname Boot)
if ! [[ -d "${EFI_BOOT_DIR}" ]]; then
EFI_BOOT_DIR=$(find "$ESP" -type d -iname BOOT)
if ! [[ -d "${EFI_BOOT_DIR}" ]]; then
mkdir -p "$(dirname ${REFIND_DIR})/boot"
EFI_BOOT_DIR="$(dirname ${REFIND_DIR})/boot"
fi
fi
fi
REFIND_CONF_PATH="${REFIND_DIR}/refind.conf"
sed -i "/$THEME_NAME/d" $REFIND_CONF_PATH
cp -vf "${REFIND_DIR}/refind.conf" "${EFI_BOOT_DIR}/refind.conf"
}
# Copied from https://raw.githubusercontent.com/jaltuna/refind-theme-nord/main/setup.sh
# Verify EFI System Partition
__has_esp__() {
__find_esp__
mount "$ESP" &>/dev/null
[[ -d "$ESP/EFI" ]] && return 0 || return 1
}
__find_esp__() {
local parttype
local fstype
local device
while read -r device; do
read -r parttype fstype ESP <<<"$(lsblk -o "PARTTYPE,FSTYPE,MOUNTPOINT" "$device" 2>/dev/null | awk 'NR==2')"
[[ "${parttype,,}" != "c12a7328-f81f-11d2-ba4b-00a0c93ec93b" ]] && continue
[[ "${fstype,,}" != "vfat" ]] && continue
[[ -z $(findmnt -sn "$ESP") ]] && continue
done <<<"$(fdisk -l 2>/dev/null | grep -i efi | cut -d " " -f 1)"
if [ -z "${ESP}" ]; then
ESP=$(grep -i "/efi" /etc/fstab | awk '{print $2}')
if [ -z "${ESP}" ]; then
ESP=$(grep -i "/boot" /etc/fstab | awk '{print $2}')
if [ -z "${ESP}" ]; then
ESP=$(bootctl --print-esp-path)
if [ -z "${ESP}" ]; then
exit 1
fi
fi
fi
fi
echo "Found ${ESP}"
readonly ESP
}