53 lines
1.4 KiB
Bash
Executable File
53 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Pommedoro Installer
|
|
# Double-click this file to install Pommedoro to /Applications
|
|
|
|
set -euo pipefail
|
|
|
|
APP_NAME="Pommedoro"
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
APP_SRC="${SCRIPT_DIR}/${APP_NAME}.app"
|
|
APP_DST="/Applications/${APP_NAME}.app"
|
|
|
|
echo ""
|
|
echo " Installing ${APP_NAME}..."
|
|
echo ""
|
|
|
|
if [ ! -d "${APP_SRC}" ]; then
|
|
echo " ERROR: ${APP_NAME}.app not found next to this installer."
|
|
echo " Make sure the DMG is mounted and try again."
|
|
echo ""
|
|
read -n 1 -s -r -p " Press any key to close..."
|
|
exit 1
|
|
fi
|
|
|
|
# Stop running instance if any
|
|
pkill -9 -f "${APP_NAME}" 2>/dev/null || true
|
|
sleep 0.3
|
|
|
|
# Copy to /Applications
|
|
rm -rf "${APP_DST}"
|
|
cp -R "${APP_SRC}" "${APP_DST}"
|
|
|
|
# Strip quarantine attribute (fixes "app is damaged" on downloaded DMGs)
|
|
xattr -cr "${APP_DST}"
|
|
|
|
# Stamp SHA256 so auto-updater knows current version
|
|
SHA_DIR="${HOME}/Library/Application Support/Pommedoro"
|
|
mkdir -p "${SHA_DIR}"
|
|
# Find the source .dmg backing this mounted volume
|
|
DMG_DEVICE="$(hdiutil info 2>/dev/null | grep -B 20 "${SCRIPT_DIR}" | grep 'image-path' | awk -F' : ' '{print $2}' | head -1)"
|
|
if [ -n "${DMG_DEVICE}" ] && [ -f "${DMG_DEVICE}" ]; then
|
|
shasum -a 256 "${DMG_DEVICE}" | awk '{print $1}' > "${SHA_DIR}/current.sha256"
|
|
echo " SHA256 stamped for auto-update."
|
|
fi
|
|
|
|
echo " Installed to ${APP_DST}"
|
|
echo " Launching ${APP_NAME}..."
|
|
echo ""
|
|
|
|
open "${APP_DST}"
|
|
|
|
echo " Done!"
|
|
echo ""
|