#!/usr/bin/env bash
set -euo pipefail

# reapply-modifications: List backed-up modifications and provide reapply guidance
# Output: PATCHES_AVAILABLE | NO_BACKUP

WORK_DIR="$PWD"
BACKUP_DIR="$WORK_DIR/mindrian-patches"
META_FILE="$BACKUP_DIR/backup-meta.json"

# Check for backup
if [[ ! -f "$META_FILE" ]]; then
  echo "NO_BACKUP"
  echo "No backed-up modifications found."
  exit 0
fi

# Read backup metadata
# Phase 127.2 Plan 04 Instance #4 sibling sweep: bash $META_FILE on Git Bash
# carries POSIX form (/c/Users/.../mindrian-patches/backup-meta.json) which
# Python open() rejects on Windows. Inline normwin() shim collapses it back
# to native C:\... only when sys.platform == 'win32'; no-op elsewhere.
NORMWIN_SHIM="import os, sys
def normwin(p):
    if sys.platform == 'win32' and len(p) >= 3 and p[0] == '/' and p[2] == '/':
        return p[1].upper() + ':' + p[2:].replace('/', os.sep)
    return p"
BACKUP_DATE=$(python3 -c "$NORMWIN_SHIM
import json; print(json.load(open(normwin('$META_FILE')))['backup_date'])")
PLUGIN_VERSION=$(python3 -c "$NORMWIN_SHIM
import json; print(json.load(open(normwin('$META_FILE')))['plugin_version'])")
FILE_COUNT=$(python3 -c "$NORMWIN_SHIM
import json; print(len(json.load(open(normwin('$META_FILE')))['modified_files']))")

echo "PATCHES_AVAILABLE"
echo "Backup from v${PLUGIN_VERSION} (${BACKUP_DATE})"
echo "${FILE_COUNT} modified files:"
echo ""

# List each file with its backup path
python3 -c "$NORMWIN_SHIM
import json; [print(f) for f in json.load(open(normwin('$META_FILE')))['modified_files']]" | while read -r file_path; do
  echo "  - ${file_path}"
  echo "    Backed up to: mindrian-patches/${file_path}"
done

echo ""
echo "To reapply, copy each file back to the plugin directory."
echo "Plugin location: \$CLAUDE_PLUGIN_ROOT or run 'claude plugin list' to find it."
