Sync with development-SDXPINN
This commit is contained in:
61
ipk-source/sdxpinn-mount-fix/CONTROL/preinst
Normal file
61
ipk-source/sdxpinn-mount-fix/CONTROL/preinst
Normal file
@@ -0,0 +1,61 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user