#!/bin/bash
# Copy PanoramaLab.app from the zip folder to the Desktop.

DEST="${HOME}/Desktop/PanoramaLab.app"
HINT="${1:-}"

say() {
  /usr/bin/osascript - "$1" <<'OSA'
on run argv
  display dialog (item 1 of argv) buttons {"OK"} default button 1 with title "Panorama Lab"
end run
OSA
}

is_app() {
  [ -x "$1/Contents/MacOS/PanoramaLab" ]
}

best=""
best_t=0
consider() {
  local p="$1"
  is_app "$p" || return 1
  case "$p" in
    *AppTranslocation*) return 1 ;;
    */Desktop/PanoramaLab.app) return 1 ;;
  esac
  local t
  t=$(/usr/bin/stat -f %m "$p/Contents/MacOS/PanoramaLab" 2>/dev/null || echo 0)
  if [ "$t" -ge "$best_t" ]; then
    best="$p"
    best_t="$t"
  fi
}

if is_app "${HINT%/}/PanoramaLab.app"; then
  consider "${HINT%/}/PanoramaLab.app" || true
fi
consider "$(cd "$(dirname "$0")" 2>/dev/null && pwd)/PanoramaLab.app" || true
while IFS= read -r p; do
  consider "$p" || true
done <<EOF
$(/usr/bin/find "${HOME}/Downloads" "${HOME}/Desktop" -maxdepth 6 -name 'PanoramaLab.app' -type d 2>/dev/null)
EOF

SRC="$best"
if [ -z "$SRC" ]; then
  say "Δεν βρέθηκε το PanoramaLab.app. Άνοιξε το zip στις Λήψεις και ξανατρέξε το Install."
  exit 1
fi

/usr/bin/xattr -cr "$SRC" >/dev/null 2>&1 || true
/bin/rm -rf "$DEST"
if ! /usr/bin/ditto "$SRC" "$DEST"; then
  say "Δεν μπόρεσε να αντιγραφεί στην επιφάνεια εργασίας."
  exit 1
fi
/usr/bin/xattr -cr "$DEST" >/dev/null 2>&1 || true
/usr/bin/xattr -dr com.apple.quarantine "$DEST" >/dev/null 2>&1 || true
/usr/bin/open -R "$DEST"
/usr/bin/open "$DEST" >/dev/null 2>&1 || true
say "Το Panorama Lab είναι στην επιφάνεια εργασίας.

Αν δεν άνοιξε: δεξί κλικ στο εικονίδιο → Άνοιγμα.
Μην πατήσεις Μετακίνηση στον Κάδο."
exit 0
