#!/usr/bin/env bash
set -u

# Local development helper: UNA deletes update packages after successful module
# updates. Restore only tracked deleted update-package files so Git status stays
# focused on real source changes.

if [ "${RESTORE_DELETED_UPDATE_FILES:-1}" = "0" ]; then
    exit 0
fi

repo_root="$(git rev-parse --show-toplevel 2>/dev/null || true)"
if [ -z "$repo_root" ]; then
    exit 0
fi

cd "$repo_root" || exit 0

deleted_update_files=()
while IFS= read -r -d '' path; do
    case "$path" in
        public/modules/*/*/updates/*)
            deleted_update_files+=("$path")
            ;;
    esac
done < <(git ls-files -z --deleted -- public/modules 2>/dev/null)

if [ "${#deleted_update_files[@]}" -eq 0 ]; then
    exit 0
fi

git restore --source=HEAD -- "${deleted_update_files[@]}" >/dev/null 2>&1 || exit 0

echo "Restored ${#deleted_update_files[@]} deleted module update file(s)."
