Files
quectel-rgmii-toolkit/ipk-source/sdxpinn-mount-fix/CONTROL/preinst
2024-10-06 02:56:50 -04:00

62 lines
2.2 KiB
Bash

#!/bin/ash
# Define the location of detected packages file
DETECTED_PACKAGES_FILE="/tmp/detected_packages.tmp"
LIST_FILE_DELETED=false
# Clear temp file before begining
rm -f "$DETECTED_PACKAGES_FILE"
# Function to check if a specific bundled package is already installed and delete its list file
detect_and_remove_list_files() {
local package_name="$1"
local list_file="/usr/lib/opkg/info/${package_name}.list"
# Check if the bundled package is installed by checking its .list file
if [ -f "$list_file" ]; then
echo "$package_name is already installed. Deleting its $list_file to avoid future conflicts."
rm -f "$list_file"
echo "$package_name" >> "$DETECTED_PACKAGES_FILE"
LIST_FILE_DELETED=true
else
echo "$package_name is not currently installed."
echo "$package_name is included in this package and will be installed."
fi
}
# Check for installed packages and handle accordingly
detect_and_remove_list_files "libinotifytools"
detect_and_remove_list_files "inotifywait"
# Report if any packages were detected and list them
if [ -f "$DETECTED_PACKAGES_FILE" ]; then
echo "Detected the following installed packages, which were handled to avoid clashes:"
cat "$DETECTED_PACKAGES_FILE"
else
echo "No pre-existing bundled packages detected."
fi
# If any list files were deleted, show a warning message at the end of the script
if [ "$LIST_FILE_DELETED" = true ]; then
echo -e "\e[31m================================================\e[0m"
echo -e "\e[31mPre-bundled packages detected\e[0m"
echo -e "\e[32mAssociation between said packages and respective files has been removed\e[0m"
echo -e "\e[31m================================================\e[0m"
echo -e "\e[31mopkg will fail now\e[0m"
echo -e "\e[32mYou need to try installing this package again\e[0m"
echo -e "\e[32mThen it will work\e[0m"
echo -e "\e[31m================================================\e[0m"
echo -e "\e[32m================================================\e[0m"
fi
# Check if /etc is mounted
if grep -qs '/etc ' /proc/mounts; then
echo "Unmounting /etc..."
umount -lf /etc
fi
# Remount original rootfs as read-write
echo "Mounting / as read-write"
mount -o remount,rw /
exit 0