#!/usr/bin/env bash set -euo pipefail OLD_PHOTO_EXTENSION="${OLD_PHOTO_EXTENSION:-/var/lib/extensions/icewhale_photos.raw}" OLD_PHOTO_DATA="${OLD_PHOTO_DATA:-/DATA/AppData/photos}" OLD_PHOTO_MEDIA_DATA="${OLD_PHOTO_MEDIA_DATA:-/media/ZimaOS-HD/AppData/photos}" OLD_PHOTO_DATA_PATHS=( "${OLD_PHOTO_DATA}" "${OLD_PHOTO_MEDIA_DATA}" ) log() { printf '[remove-old-photo] %s\n' "$*" } confirm_data_removal() { local response local data_path log "To prevent data inconsistencies, the old Photos data in these locations needs to be removed:" for data_path in "${existing_data_paths[@]}"; do printf ' - %s\n' "${data_path}" done if ! { exec 3<>/dev/tty; } 2>/dev/null; then log "No interactive terminal is available. Skipping old Photos data removal." return 1 fi printf 'Delete the listed old Photos data directories? [Y/n]: ' >&3 if ! IFS= read -r response <&3; then exec 3>&- log "Unable to read the confirmation. Skipping old Photos data removal." return 1 fi exec 3>&- case "${response}" in "" | [yY]) return 0 ;; *) return 1 ;; esac } if [[ "${EUID}" -ne 0 ]]; then log "This script must be run as root." exit 1 fi changes_made=0 existing_data_paths=() if [[ -e "${OLD_PHOTO_EXTENSION}" || -L "${OLD_PHOTO_EXTENSION}" ]]; then log "Removing ${OLD_PHOTO_EXTENSION}..." rm -f -- "${OLD_PHOTO_EXTENSION}" changes_made=1 else log "The old Photos extension was not found." fi for data_path in "${OLD_PHOTO_DATA_PATHS[@]}"; do if [[ -e "${data_path}" || -L "${data_path}" ]]; then existing_data_paths+=("${data_path}") else log "The old Photos data directory was not found: ${data_path}" fi done if [[ "${#existing_data_paths[@]}" -gt 0 ]]; then if confirm_data_removal; then for data_path in "${existing_data_paths[@]}"; do log "Removing ${data_path}..." rm -rf -- "${data_path}" done changes_made=1 else log "Old Photos data removal was skipped." fi fi if [[ "${changes_made}" -eq 0 ]]; then log "No changes were made." exit 0 fi log "Refreshing system extensions..." systemd-sysext refresh log "Reloading the systemd manager configuration..." systemctl daemon-reload log "Restarting zimaos-photos..." systemctl restart zimaos-photos log "Old Photos cleanup completed successfully."