#!/usr/bin/env bash
# pcrepair.support - 1-Click macOS Hardware & System Diagnostic Scan
clear

echo "======================================================================"
echo "          pcrepair.support - macOS Diagnostic Collector               "
echo "======================================================================"
echo ""
echo "  This tool performs a 100% safe, read-only hardware and health scan."
echo "  No personal files, browsing history, or passwords are accessed."
echo ""
echo "  [+] Scanning Mac hardware, RAM, storage, and crash logs..."
echo ""

REPORT="$HOME/Desktop/PCR-Mac-Diagnostic-Report.txt"

{
  echo "======================================================================"
  echo "         PCREPAIR.SUPPORT - MAC SYSTEM DIAGNOSTIC REPORT              "
  echo "         Generated: $(date)"
  echo "======================================================================"
  echo ""
  echo "--- 1. MAC HARDWARE & OS ---"
  sw_vers
  sysctl -n machdep.cpu.brand_string 2>/dev/null || echo "Apple Silicon"
  echo "Uptime: $(uptime)"
  echo ""
  echo "--- 2. MEMORY (RAM) ---"
  sysctl hw.memsize | awk '{print "Total RAM: " $2/1024/1024/1024 " GB"}'
  vm_stat | perl -ne '/page size of (\d+)/ and $size=$1; /Pages free:\s+(\d+)/ and printf("Free Pages: %d MB\n", $1*$size/1048576);'
  echo ""
  echo "--- 3. STORAGE & APFS VOLUMES ---"
  df -h /
  echo ""
  echo "--- 4. BATTERY HEALTH (IF LAPTOP) ---"
  system_profiler SPPowerDataType 2>/dev/null | grep -E "(Cycle Count|Condition|State of Charge)" || echo "Desktop Mac (No battery)"
  echo ""
  echo "--- 5. TOP RESOURCE CONSUMERS ---"
  ps -arcwwwxo "command %cpu %mem" | head -n 6
  echo ""
  echo "======================================================================"
  echo "Please upload this report to your pcrepair.support ticket."
  echo "======================================================================"
} > "$REPORT"

echo "  [✓] Scan complete!"
echo "  [✓] Report saved to your Desktop: PCR-Mac-Diagnostic-Report.txt"
echo ""
read -p "Press [Enter] to finish and close this window..."

