镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Regen macOS Fleet-maintained app scripts - #55214

Closed
fleet-release wants to merge 10 commits into
mainfrom
fma-2610090403
Closed

fleet-release wants to merge 10 commits into
mainfrom
fma-2610090403

Conversation

@fleet-release

Copy link
Copy Markdown
Contributor

Automated ingestion of latest Fleet-maintained app data.

Generated automatically with cmd/maintained-apps.
@allenhouchins allenhouchins changed the title Update Fleet-maintained apps Regen macOS Fleet-maintained app scripts Oct 9, 2026
Bulk regenerations touch every FMA output, so the comment body overflowed
and the job failed. Show as many files as fit and link the job log, which
has the full diff.
The rolling fwlink now serves 101.26072.0017, so the pinned sha256 no
longer matched and validation failed.
The rolling DMG installs 7.29.3, but the Homebrew cask is stuck at 7.29.2
because its livecheck hits a Cloudflare challenge on support.garmin.com.
download.updf.com serves a Cloudflare challenge to every non-browser
client, so the installer can't be downloaded by Fleet or validated. The
input, output, and icon files were removed in 1d1e8fc.
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/inputs/homebrew/updf.json

Error: File 'ee/maintained-apps/inputs/homebrew/updf.json' does not exist

ee/maintained-apps/outputs/010-editor/darwin.json

=== Install // b3fb6381 -> b028db6c ===

--- /tmp/old.6nbBre	2026-10-09 13:41:37.402640114 +0000
+++ /tmp/new.VAFRlq	2026-10-09 13:41:37.402640114 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.SweetScape.010Editor'
+quit_and_track_application 'com.SweetScape.010Editor' || exit 1
 if [ -d "$APPDIR/010 Editor.app" ]; then
 	sudo mv "$APPDIR/010 Editor.app" "$TMPDIR/010 Editor.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-slideshow-maker/darwin.json

=== Install // 4d6c6c3a -> 120045c5 ===

--- /tmp/old.3k5TVW	2026-10-09 13:41:37.461640674 +0000
+++ /tmp/new.A1Jjgx	2026-10-09 13:41:37.461640674 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kslideshowmaker'
+quit_and_track_application 'com.openmedia.4kslideshowmaker' || exit 1
 if [ -d "$APPDIR/4K Slideshow Maker.app" ]; then
 	sudo mv "$APPDIR/4K Slideshow Maker.app" "$TMPDIR/4K Slideshow Maker.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-stogram/darwin.json

=== Install // 17ba87c2 -> 47939f0d ===

--- /tmp/old.0TvDOf	2026-10-09 13:41:37.524641273 +0000
+++ /tmp/new.R9UAb1	2026-10-09 13:41:37.524641273 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kstogram'
+quit_and_track_application 'com.openmedia.4kstogram' || exit 1
 if [ -d "$APPDIR/4K Stogram.app" ]; then
 	sudo mv "$APPDIR/4K Stogram.app" "$TMPDIR/4K Stogram.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-video-downloader/darwin.json

=== Install // b39acc12 -> 2ca9b287 ===

--- /tmp/old.wv8vJ5	2026-10-09 13:41:37.592641918 +0000
+++ /tmp/new.ZdL5UV	2026-10-09 13:41:37.592641918 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.4kdownload.ApplicationDirectories'
+quit_and_track_application 'com.4kdownload.ApplicationDirectories' || exit 1
 if [ -d "$APPDIR/4K Video Downloader.app" ]; then
 	sudo mv "$APPDIR/4K Video Downloader.app" "$TMPDIR/4K Video Downloader.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-video-to-mp3/darwin.json

=== Install // 7e311119 -> 2fb10684 ===

--- /tmp/old.MHnYBe	2026-10-09 13:41:37.652642488 +0000
+++ /tmp/new.Cz7H1G	2026-10-09 13:41:37.652642488 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kvideotomp3'
+quit_and_track_application 'com.openmedia.4kvideotomp3' || exit 1
 if [ -d "$APPDIR/4K Video to MP3.app" ]; then
 	sudo mv "$APPDIR/4K Video to MP3.app" "$TMPDIR/4K Video to MP3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-youtube-to-mp3/darwin.json

=== Install // 86bee2e4 -> f1ede0da ===

--- /tmp/old.RpRIoG	2026-10-09 13:41:37.690642849 +0000
+++ /tmp/new.kbkMGH	2026-10-09 13:41:37.690642849 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kyoutubetomp3'
+quit_and_track_application 'com.openmedia.4kyoutubetomp3' || exit 1
 if [ -d "$APPDIR/4K YouTube to MP3.app" ]; then
 	sudo mv "$APPDIR/4K YouTube to MP3.app" "$TMPDIR/4K YouTube to MP3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/8x8-work/darwin.json

=== Install // 18ff65bc -> 5f8bc9e2 ===

--- /tmp/old.tsdfkV	2026-10-09 13:41:37.743643352 +0000
+++ /tmp/new.T6q6Ok	2026-10-09 13:41:37.743643352 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.electron.8x8---virtual-office'
+quit_and_track_application 'com.electron.8x8---virtual-office' || exit 1
 if [ -d "$APPDIR/8x8 Work.app" ]; then
 	sudo mv "$APPDIR/8x8 Work.app" "$TMPDIR/8x8 Work.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/a-better-finder-rename/darwin.json

=== Install // 07711880 -> 1cad6619 ===

--- /tmp/old.VOHDa6	2026-10-09 13:41:37.784643741 +0000
+++ /tmp/new.BfEcyf	2026-10-09 13:41:37.784643741 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'net.publicspace.abfr12'
+quit_and_track_application 'net.publicspace.abfr12' || exit 1
 if [ -d "$APPDIR/A Better Finder Rename 12.app" ]; then
 	sudo mv "$APPDIR/A Better Finder Rename 12.app" "$TMPDIR/A Better Finder Rename 12.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/ableton-live-suite/darwin.json

=== Install // 9ea4cfbf -> 68d89f83 ===

--- /tmp/old.5N5zkg	2026-10-09 13:41:37.832644197 +0000
+++ /tmp/new.MxzOen	2026-10-09 13:41:37.832644197 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.ableton.live'
+quit_and_track_application 'com.ableton.live' || exit 1
 if [ -d "$APPDIR/Ableton Live 12 Suite.app" ]; then
 	sudo mv "$APPDIR/Ableton Live 12 Suite.app" "$TMPDIR/Ableton Live 12 Suite.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/acorn/darwin.json

=== Install // 905a9e15 -> 08e60748 ===

--- /tmp/old.rWwhjt	2026-10-09 13:41:37.881644662 +0000
+++ /tmp/new.5hwcD3	2026-10-09 13:41:37.881644662 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.flyingmeat.Acorn8'
+quit_and_track_application 'com.flyingmeat.Acorn8' || exit 1
 if [ -d "$APPDIR/Acorn.app" ]; then
 	sudo mv "$APPDIR/Acorn.app" "$TMPDIR/Acorn.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/activedock/darwin.json

=== Install // 8971cbeb -> f68065ec ===

--- /tmp/old.0gK3Dw	2026-10-09 13:41:37.912644956 +0000
+++ /tmp/new.ynSzCi	2026-10-09 13:41:37.913644966 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.sergey-gerasimenko.ActiveDock-2'
+quit_and_track_application 'com.sergey-gerasimenko.ActiveDock-2' || exit 1
 if [ -d "$APPDIR/ActiveDock 2.app" ]; then
 	sudo mv "$APPDIR/ActiveDock 2.app" "$TMPDIR/ActiveDock 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/activitywatch/darwin.json

=== Install // 879d6b6f -> 0aca71f3 ===

--- /tmp/old.LfOcgy	2026-10-09 13:41:37.941645231 +0000
+++ /tmp/new.VW4TXi	2026-10-09 13:41:37.941645231 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'net.activitywatch.ActivityWatch'
+quit_and_track_application 'net.activitywatch.ActivityWatch' || exit 1
 if [ -d "$APPDIR/ActivityWatch.app" ]; then
 	sudo mv "$APPDIR/ActivityWatch.app" "$TMPDIR/ActivityWatch.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/actual/darwin.json

=== Install // a6f737ee -> 878a043e ===

--- /tmp/old.uYzg3l	2026-10-09 13:41:37.976645564 +0000
+++ /tmp/new.l4W0aw	2026-10-09 13:41:37.976645564 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.actualbudget.actual'
+quit_and_track_application 'com.actualbudget.actual' || exit 1
 if [ -d "$APPDIR/Actual.app" ]; then
 	sudo mv "$APPDIR/Actual.app" "$TMPDIR/Actual.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adguard/darwin.json

=== Install // bd04834e -> 97e137ce ===

--- /tmp/old.x4NFlM	2026-10-09 13:41:38.034646114 +0000
+++ /tmp/new.rSrUnw	2026-10-09 13:41:38.034646114 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adguard.mac.adguard'
+quit_and_track_application 'com.adguard.mac.adguard' || exit 1
 sudo installer -pkg "$TMPDIR/AdGuard.pkg" -target / || exit $?
 relaunch_application 'com.adguard.mac.adguard'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adlock/darwin.json

=== Install // fd5fc85e -> b1ca7e43 ===

--- /tmp/old.MFTIp6	2026-10-09 13:41:38.074646494 +0000
+++ /tmp/new.rzjneP	2026-10-09 13:41:38.074646494 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.hankuper.adlock.desktop'
+quit_and_track_application 'com.hankuper.adlock.desktop' || exit 1
 sudo installer -pkg "$TMPDIR/AdLock-Installer.pkg" -target / || exit $?
 relaunch_application 'com.hankuper.adlock.desktop'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-acrobat-reader/darwin.json

=== Install // 5f5f2226 -> 60fa0fce ===

--- /tmp/old.Wa1dPv	2026-10-09 13:41:38.132647045 +0000
+++ /tmp/new.1b5fBZ	2026-10-09 13:41:38.133647054 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.Reader'
+quit_and_track_application 'com.adobe.Reader' || exit 1
 sudo installer -pkg "$TMPDIR/AcroRdrDC_2600121662_MUI.pkg" -target / || exit $?
 relaunch_application 'com.adobe.Reader'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-digital-editions/darwin.json

=== Install // 0348c9d5 -> 32927f34 ===

--- /tmp/old.APt6d7	2026-10-09 13:41:38.192647614 +0000
+++ /tmp/new.y5lXSB	2026-10-09 13:41:38.192647614 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.adobedigitaleditions.app'
+quit_and_track_application 'com.adobe.adobedigitaleditions.app' || exit 1
 sudo installer -pkg "$TMPDIR/Digital Editions 4.5 Installer.pkg" -target / || exit $?
 relaunch_application 'com.adobe.adobedigitaleditions.app'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-dng-converter/darwin.json

=== Install // de693a0a -> 597af862 ===

--- /tmp/old.sUD0x0	2026-10-09 13:41:38.232647994 +0000
+++ /tmp/new.2ZHSEl	2026-10-09 13:41:38.232647994 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.DNGConverter'
+quit_and_track_application 'com.adobe.DNGConverter' || exit 1
 sudo installer -pkg "$TMPDIR/DNGConverter_18_7.pkg" -target / || exit $?
 relaunch_application 'com.adobe.DNGConverter'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/advanced-renamer/darwin.json

=== Install // 98d31102 -> 22136d18 ===

--- /tmp/old.sNgAbD	2026-10-09 13:41:38.266648317 +0000
+++ /tmp/new.pwyMcW	2026-10-09 13:41:38.266648317 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.HulubuluSoftware.AdvancedRenamer'
+quit_and_track_application 'com.HulubuluSoftware.AdvancedRenamer' || exit 1
 if [ -d "$APPDIR/Advanced Renamer.app" ]; then
 	sudo mv "$APPDIR/Advanced Renamer.app" "$TMPDIR/Advanced Renamer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-designer/darwin.json

=== Install // 36d1e230 -> 85dd84eb ===

--- /tmp/old.JWNPBi	2026-10-09 13:41:38.324648867 +0000
+++ /tmp/new.QpmtkY	2026-10-09 13:41:38.324648867 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitydesigner2'
+quit_and_track_application 'com.seriflabs.affinitydesigner2' || exit 1
 if [ -d "$APPDIR/Affinity Designer 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Designer 2.app" "$TMPDIR/Affinity Designer 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-designer@1/darwin.json

=== Install // 2a9da685 -> 95b22c6d ===

--- /tmp/old.v8wFQ1	2026-10-09 13:41:38.382649418 +0000
+++ /tmp/new.9OrWa3	2026-10-09 13:41:38.382649418 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitydesigner'
+quit_and_track_application 'com.seriflabs.affinitydesigner' || exit 1
 if [ -d "$APPDIR/Affinity Designer.app" ]; then
 	sudo mv "$APPDIR/Affinity Designer.app" "$TMPDIR/Affinity Designer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-photo/darwin.json

=== Install // 116af54f -> be18ecb4 ===

--- /tmp/old.D0ypA6	2026-10-09 13:41:38.440649969 +0000
+++ /tmp/new.tu0whO	2026-10-09 13:41:38.440649969 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinityphoto2'
+quit_and_track_application 'com.seriflabs.affinityphoto2' || exit 1
 if [ -d "$APPDIR/Affinity Photo 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Photo 2.app" "$TMPDIR/Affinity Photo 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-photo@1/darwin.json

=== Install // e97a663f -> ac444c5f ===

--- /tmp/old.NLpD9V	2026-10-09 13:41:38.498650519 +0000
+++ /tmp/new.la4ZvK	2026-10-09 13:41:38.498650519 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinityphoto'
+quit_and_track_application 'com.seriflabs.affinityphoto' || exit 1
 if [ -d "$APPDIR/Affinity Photo.app" ]; then
 	sudo mv "$APPDIR/Affinity Photo.app" "$TMPDIR/Affinity Photo.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-publisher/darwin.json

=== Install // db783e5c -> 97aedeca ===

--- /tmp/old.SI3PD2	2026-10-09 13:41:38.556651070 +0000
+++ /tmp/new.1BY3T2	2026-10-09 13:41:38.556651070 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitypublisher2'
+quit_and_track_application 'com.seriflabs.affinitypublisher2' || exit 1
 if [ -d "$APPDIR/Affinity Publisher 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Publisher 2.app" "$TMPDIR/Affinity Publisher 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-publisher@1/darwin.json

=== Install // 5a22e6ad -> 7327fe72 ===

--- /tmp/old.espVzl	2026-10-09 13:41:38.614651620 +0000
+++ /tmp/new.cwXqYT	2026-10-09 13:41:38.614651620 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitypublisher'
+quit_and_track_application 'com.seriflabs.affinitypublisher' || exit 1
 if [ -d "$APPDIR/Affinity Publisher.app" ]; then
 	sudo mv "$APPDIR/Affinity Publisher.app" "$TMPDIR/Affinity Publisher.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity/darwin.json

=== Install // fdf5531d -> a2fecb23 ===

--- /tmp/old.pZbX18	2026-10-09 13:41:38.643651896 +0000
+++ /tmp/new.zd8koE	2026-10-09 13:41:38.643651896 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.canva.affinity'
+quit_and_track_application 'com.canva.affinity' || exit 1
 if [ -d "$APPDIR/Affinity.app" ]; then
 	sudo mv "$APPDIR/Affinity.app" "$TMPDIR/Affinity.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airbuddy/darwin.json

=== Install // d2a86d92 -> 7b21ae83 ===

--- /tmp/old.AKqOYc	2026-10-09 13:41:38.682652266 +0000
+++ /tmp/new.WDupu3	2026-10-09 13:41:38.682652266 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'codes.rambo.AirBuddy'
+quit_and_track_application 'codes.rambo.AirBuddy' || exit 1
 if [ -d "$APPDIR/AirBuddy.app" ]; then
 	sudo mv "$APPDIR/AirBuddy.app" "$TMPDIR/AirBuddy.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/aircall/darwin.json

=== Install // 029a5c4f -> d2822533 ===

--- /tmp/old.YXslyw	2026-10-09 13:41:38.741652826 +0000
+++ /tmp/new.ay8VTJ	2026-10-09 13:41:38.741652826 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'io.aircall.phone'
+quit_and_track_application 'io.aircall.phone' || exit 1
 if [ -d "$APPDIR/Aircall.app" ]; then
 	sudo mv "$APPDIR/Aircall.app" "$TMPDIR/Aircall.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airdroid/darwin.json

=== Install // e797e90d -> ca7f26c3 ===

--- /tmp/old.JHzE52	2026-10-09 13:41:38.798653367 +0000
+++ /tmp/new.N5L0eG	2026-10-09 13:41:38.799653377 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.sandstudio.airdroid'
+quit_and_track_application 'com.sandstudio.airdroid' || exit 1
 if [ -d "$APPDIR/AirDroid.app" ]; then
 	sudo mv "$APPDIR/AirDroid.app" "$TMPDIR/AirDroid.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airparrot/darwin.json

=== Install // a5af95d5 -> 96af4da7 ===

--- /tmp/old.RpmkqH	2026-10-09 13:41:38.839653756 +0000
+++ /tmp/new.YtCKmV	2026-10-09 13:41:38.839653756 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.squirrels.AirParrot-3'
+quit_and_track_application 'com.squirrels.AirParrot-3' || exit 1
 if [ -d "$APPDIR/AirParrot 3.app" ]; then
 	sudo mv "$APPDIR/AirParrot 3.app" "$TMPDIR/AirParrot 3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airserver/darwin.json

=== Install // 14e82afb -> c1c9eeb0 ===

--- /tmp/old.hdYxJt	2026-10-09 13:41:38.906654392 +0000
+++ /tmp/new.ZDIxk5	2026-10-09 13:41:38.906654392 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.pratikkumar.airserver-mac'
+quit_and_track_application 'com.pratikkumar.airserver-mac' || exit 1
 if [ -d "$APPDIR/AirServer.app" ]; then
 	sudo mv "$APPDIR/AirServer.app" "$TMPDIR/AirServer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airtable/darwin.json

=== Install // 63fb1973 -> b519bd11 ===

--- /tmp/old.wzJ7Fq	2026-10-09 13:41:38.963654934 +0000
+++ /tmp/new.CdAWsH	2026-10-09 13:41:38.963654934 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.FormaGrid.Airtable'
+quit_and_track_application 'com.FormaGrid.Airtable' || exit 1
 if [ -d "$APPDIR/Airtable.app" ]; then
 	sudo mv "$APPDIR/Airtable.app" "$TMPDIR/Airtable.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airtame/darwin.json

=== Install // 4e4b470a -> c9dd1521 ===

--- /tmp/old.opwjLS	2026-10-09 13:41:39.021655484 +0000
+++ /tmp/new.Jkemnk	2026-10-09 13:41:39.021655484 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.airtame.airtame-application'
+quit_and_track_application 'com.airtame.airtame-application' || exit 1
 if [ -d "$APPDIR/Airtame.app" ]; then
 	sudo mv "$APPDIR/Airtame.app" "$TMPDIR/Airtame.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airy/darwin.json

=== Install // f9303b49 -> 5890c299 ===

--- /tmp/old.p4HlrS	2026-10-09 13:41:39.080656044 +0000
+++ /tmp/new.AA0kfV	2026-10-09 13:41:39.080656044 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.eltima.Airy'
+quit_and_track_application 'com.eltima.Airy' || exit 1
 if [ -d "$APPDIR/Airy.app" ]; then
 	sudo mv "$APPDIR/Airy.app" "$TMPDIR/Airy.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/akiflow/darwin.json

=== Install // 7d580667 -> 3bd2344c ===

--- /tmp/old.TnY7SV	2026-10-09 13:41:39.109656320 +0000
+++ /tmp/new.Wq5o13	2026-10-09 13:41:39.109656320 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.akiflow.akiflow'
+quit_and_track_application 'com.akiflow.akiflow' || exit 1
 if [ -d "$APPDIR/Akiflow.app" ]; then
 	sudo mv "$APPDIR/Akiflow.app" "$TMPDIR/Akiflow.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/alcove/darwin.json

=== Install // f0f034e7 -> e67c72e8 ===

--- /tmp/old.g5Ri0H	2026-10-09 13:41:39.167656870 +0000
+++ /tmp/new.PovUbT	2026-10-09 13:41:39.167656870 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.henrikruscon.Alcove'
+quit_and_track_application 'com.henrikruscon.Alcove' || exit 1
 if [ -d "$APPDIR/Alcove.app" ]; then
 	sudo mv "$APPDIR/Alcove.app" "$TMPDIR/Alcove.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

Showing 37 of 938 changed files. See the job log for the full diff.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/inputs/homebrew/updf.json

Error: File 'ee/maintained-apps/inputs/homebrew/updf.json' does not exist

ee/maintained-apps/outputs/010-editor/darwin.json

=== Install // b3fb6381 -> b028db6c ===

--- /tmp/old.4wwklG	2026-10-09 13:41:36.892301871 +0000
+++ /tmp/new.lBgckl	2026-10-09 13:41:36.893301862 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.SweetScape.010Editor'
+quit_and_track_application 'com.SweetScape.010Editor' || exit 1
 if [ -d "$APPDIR/010 Editor.app" ]; then
 	sudo mv "$APPDIR/010 Editor.app" "$TMPDIR/010 Editor.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-slideshow-maker/darwin.json

=== Install // 4d6c6c3a -> 120045c5 ===

--- /tmp/old.G0XluC	2026-10-09 13:41:36.977301109 +0000
+++ /tmp/new.sYlYvp	2026-10-09 13:41:36.978301100 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kslideshowmaker'
+quit_and_track_application 'com.openmedia.4kslideshowmaker' || exit 1
 if [ -d "$APPDIR/4K Slideshow Maker.app" ]; then
 	sudo mv "$APPDIR/4K Slideshow Maker.app" "$TMPDIR/4K Slideshow Maker.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-stogram/darwin.json

=== Install // 17ba87c2 -> 47939f0d ===

--- /tmp/old.ODy36C	2026-10-09 13:41:37.062300347 +0000
+++ /tmp/new.MP1P8N	2026-10-09 13:41:37.063300338 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kstogram'
+quit_and_track_application 'com.openmedia.4kstogram' || exit 1
 if [ -d "$APPDIR/4K Stogram.app" ]; then
 	sudo mv "$APPDIR/4K Stogram.app" "$TMPDIR/4K Stogram.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-video-downloader/darwin.json

=== Install // b39acc12 -> 2ca9b287 ===

--- /tmp/old.fepBy1	2026-10-09 13:41:37.149299567 +0000
+++ /tmp/new.PfShHF	2026-10-09 13:41:37.149299567 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.4kdownload.ApplicationDirectories'
+quit_and_track_application 'com.4kdownload.ApplicationDirectories' || exit 1
 if [ -d "$APPDIR/4K Video Downloader.app" ]; then
 	sudo mv "$APPDIR/4K Video Downloader.app" "$TMPDIR/4K Video Downloader.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-video-to-mp3/darwin.json

=== Install // 7e311119 -> 2fb10684 ===

--- /tmp/old.5ujcIJ	2026-10-09 13:41:37.233298813 +0000
+++ /tmp/new.HZO0DR	2026-10-09 13:41:37.234298804 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kvideotomp3'
+quit_and_track_application 'com.openmedia.4kvideotomp3' || exit 1
 if [ -d "$APPDIR/4K Video to MP3.app" ]; then
 	sudo mv "$APPDIR/4K Video to MP3.app" "$TMPDIR/4K Video to MP3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-youtube-to-mp3/darwin.json

=== Install // 86bee2e4 -> f1ede0da ===

--- /tmp/old.8bS9di	2026-10-09 13:41:37.287298329 +0000
+++ /tmp/new.PiyZUA	2026-10-09 13:41:37.287298329 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kyoutubetomp3'
+quit_and_track_application 'com.openmedia.4kyoutubetomp3' || exit 1
 if [ -d "$APPDIR/4K YouTube to MP3.app" ]; then
 	sudo mv "$APPDIR/4K YouTube to MP3.app" "$TMPDIR/4K YouTube to MP3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/8x8-work/darwin.json

=== Install // 18ff65bc -> 5f8bc9e2 ===

--- /tmp/old.2hTjbS	2026-10-09 13:41:37.364297639 +0000
+++ /tmp/new.pgjkGd	2026-10-09 13:41:37.365297630 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.electron.8x8---virtual-office'
+quit_and_track_application 'com.electron.8x8---virtual-office' || exit 1
 if [ -d "$APPDIR/8x8 Work.app" ]; then
 	sudo mv "$APPDIR/8x8 Work.app" "$TMPDIR/8x8 Work.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/a-better-finder-rename/darwin.json

=== Install // 07711880 -> 1cad6619 ===

--- /tmp/old.MN3wHU	2026-10-09 13:41:37.409297235 +0000
+++ /tmp/new.tc7SvK	2026-10-09 13:41:37.409297235 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'net.publicspace.abfr12'
+quit_and_track_application 'net.publicspace.abfr12' || exit 1
 if [ -d "$APPDIR/A Better Finder Rename 12.app" ]; then
 	sudo mv "$APPDIR/A Better Finder Rename 12.app" "$TMPDIR/A Better Finder Rename 12.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/ableton-live-suite/darwin.json

=== Install // 9ea4cfbf -> 68d89f83 ===

--- /tmp/old.RhvYbS	2026-10-09 13:41:37.493296482 +0000
+++ /tmp/new.WtwHWS	2026-10-09 13:41:37.493296482 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.ableton.live'
+quit_and_track_application 'com.ableton.live' || exit 1
 if [ -d "$APPDIR/Ableton Live 12 Suite.app" ]; then
 	sudo mv "$APPDIR/Ableton Live 12 Suite.app" "$TMPDIR/Ableton Live 12 Suite.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/acorn/darwin.json

=== Install // 905a9e15 -> 08e60748 ===

--- /tmp/old.tFkRKW	2026-10-09 13:41:37.566295827 +0000
+++ /tmp/new.3OZglJ	2026-10-09 13:41:37.566295827 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.flyingmeat.Acorn8'
+quit_and_track_application 'com.flyingmeat.Acorn8' || exit 1
 if [ -d "$APPDIR/Acorn.app" ]; then
 	sudo mv "$APPDIR/Acorn.app" "$TMPDIR/Acorn.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/activedock/darwin.json

=== Install // 8971cbeb -> f68065ec ===

--- /tmp/old.zw4Kbv	2026-10-09 13:41:37.612295415 +0000
+++ /tmp/new.MJMafH	2026-10-09 13:41:37.613295406 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.sergey-gerasimenko.ActiveDock-2'
+quit_and_track_application 'com.sergey-gerasimenko.ActiveDock-2' || exit 1
 if [ -d "$APPDIR/ActiveDock 2.app" ]; then
 	sudo mv "$APPDIR/ActiveDock 2.app" "$TMPDIR/ActiveDock 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/activitywatch/darwin.json

=== Install // 879d6b6f -> 0aca71f3 ===

--- /tmp/old.yIRauv	2026-10-09 13:41:37.653295047 +0000
+++ /tmp/new.XBD6Lr	2026-10-09 13:41:37.653295047 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'net.activitywatch.ActivityWatch'
+quit_and_track_application 'net.activitywatch.ActivityWatch' || exit 1
 if [ -d "$APPDIR/ActivityWatch.app" ]; then
 	sudo mv "$APPDIR/ActivityWatch.app" "$TMPDIR/ActivityWatch.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/actual/darwin.json

=== Install // a6f737ee -> 878a043e ===

--- /tmp/old.895bdB	2026-10-09 13:41:37.717294473 +0000
+++ /tmp/new.28ccAa	2026-10-09 13:41:37.718294464 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.actualbudget.actual'
+quit_and_track_application 'com.actualbudget.actual' || exit 1
 if [ -d "$APPDIR/Actual.app" ]; then
 	sudo mv "$APPDIR/Actual.app" "$TMPDIR/Actual.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adguard/darwin.json

=== Install // bd04834e -> 97e137ce ===

--- /tmp/old.WEGY2z	2026-10-09 13:41:37.809293648 +0000
+++ /tmp/new.AYQT1Q	2026-10-09 13:41:37.809293648 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adguard.mac.adguard'
+quit_and_track_application 'com.adguard.mac.adguard' || exit 1
 sudo installer -pkg "$TMPDIR/AdGuard.pkg" -target / || exit $?
 relaunch_application 'com.adguard.mac.adguard'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adlock/darwin.json

=== Install // fd5fc85e -> b1ca7e43 ===

--- /tmp/old.d6JlIl	2026-10-09 13:41:37.865293146 +0000
+++ /tmp/new.qgEQs0	2026-10-09 13:41:37.865293146 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.hankuper.adlock.desktop'
+quit_and_track_application 'com.hankuper.adlock.desktop' || exit 1
 sudo installer -pkg "$TMPDIR/AdLock-Installer.pkg" -target / || exit $?
 relaunch_application 'com.hankuper.adlock.desktop'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-acrobat-reader/darwin.json

=== Install // 5f5f2226 -> 60fa0fce ===

--- /tmp/old.8476i2	2026-10-09 13:41:37.951292375 +0000
+++ /tmp/new.ApeV4y	2026-10-09 13:41:37.952292366 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.Reader'
+quit_and_track_application 'com.adobe.Reader' || exit 1
 sudo installer -pkg "$TMPDIR/AcroRdrDC_2600121662_MUI.pkg" -target / || exit $?
 relaunch_application 'com.adobe.Reader'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-digital-editions/darwin.json

=== Install // 0348c9d5 -> 32927f34 ===

--- /tmp/old.JdndJ2	2026-10-09 13:41:38.036291613 +0000
+++ /tmp/new.95Nu8X	2026-10-09 13:41:38.037291603 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.adobedigitaleditions.app'
+quit_and_track_application 'com.adobe.adobedigitaleditions.app' || exit 1
 sudo installer -pkg "$TMPDIR/Digital Editions 4.5 Installer.pkg" -target / || exit $?
 relaunch_application 'com.adobe.adobedigitaleditions.app'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-dng-converter/darwin.json

=== Install // de693a0a -> 597af862 ===

--- /tmp/old.sZVasc	2026-10-09 13:41:38.092291110 +0000
+++ /tmp/new.NZ1v3D	2026-10-09 13:41:38.092291110 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.DNGConverter'
+quit_and_track_application 'com.adobe.DNGConverter' || exit 1
 sudo installer -pkg "$TMPDIR/DNGConverter_18_7.pkg" -target / || exit $?
 relaunch_application 'com.adobe.DNGConverter'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/advanced-renamer/darwin.json

=== Install // 98d31102 -> 22136d18 ===

--- /tmp/old.8St2Hc	2026-10-09 13:41:38.141290671 +0000
+++ /tmp/new.N9br5e	2026-10-09 13:41:38.141290671 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.HulubuluSoftware.AdvancedRenamer'
+quit_and_track_application 'com.HulubuluSoftware.AdvancedRenamer' || exit 1
 if [ -d "$APPDIR/Advanced Renamer.app" ]; then
 	sudo mv "$APPDIR/Advanced Renamer.app" "$TMPDIR/Advanced Renamer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-designer/darwin.json

=== Install // 36d1e230 -> 85dd84eb ===

--- /tmp/old.ENxuzc	2026-10-09 13:41:38.239289792 +0000
+++ /tmp/new.6xIt7g	2026-10-09 13:41:38.240289783 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitydesigner2'
+quit_and_track_application 'com.seriflabs.affinitydesigner2' || exit 1
 if [ -d "$APPDIR/Affinity Designer 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Designer 2.app" "$TMPDIR/Affinity Designer 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-designer@1/darwin.json

=== Install // 2a9da685 -> 95b22c6d ===

--- /tmp/old.soBxEb	2026-10-09 13:41:38.323289039 +0000
+++ /tmp/new.ZWloBY	2026-10-09 13:41:38.323289039 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitydesigner'
+quit_and_track_application 'com.seriflabs.affinitydesigner' || exit 1
 if [ -d "$APPDIR/Affinity Designer.app" ]; then
 	sudo mv "$APPDIR/Affinity Designer.app" "$TMPDIR/Affinity Designer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-photo/darwin.json

=== Install // 116af54f -> be18ecb4 ===

--- /tmp/old.F8Iats	2026-10-09 13:41:38.406288295 +0000
+++ /tmp/new.wEK022	2026-10-09 13:41:38.406288295 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinityphoto2'
+quit_and_track_application 'com.seriflabs.affinityphoto2' || exit 1
 if [ -d "$APPDIR/Affinity Photo 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Photo 2.app" "$TMPDIR/Affinity Photo 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-photo@1/darwin.json

=== Install // e97a663f -> ac444c5f ===

--- /tmp/old.ZWiGQT	2026-10-09 13:41:38.490287541 +0000
+++ /tmp/new.JWnFIm	2026-10-09 13:41:38.491287532 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinityphoto'
+quit_and_track_application 'com.seriflabs.affinityphoto' || exit 1
 if [ -d "$APPDIR/Affinity Photo.app" ]; then
 	sudo mv "$APPDIR/Affinity Photo.app" "$TMPDIR/Affinity Photo.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-publisher/darwin.json

=== Install // db783e5c -> 97aedeca ===

--- /tmp/old.qkdI7o	2026-10-09 13:41:38.572286806 +0000
+++ /tmp/new.7Ykj4F	2026-10-09 13:41:38.572286806 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitypublisher2'
+quit_and_track_application 'com.seriflabs.affinitypublisher2' || exit 1
 if [ -d "$APPDIR/Affinity Publisher 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Publisher 2.app" "$TMPDIR/Affinity Publisher 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-publisher@1/darwin.json

=== Install // 5a22e6ad -> 7327fe72 ===

--- /tmp/old.MTq7At	2026-10-09 13:41:38.654286071 +0000
+++ /tmp/new.F0Mt0X	2026-10-09 13:41:38.655286062 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitypublisher'
+quit_and_track_application 'com.seriflabs.affinitypublisher' || exit 1
 if [ -d "$APPDIR/Affinity Publisher.app" ]; then
 	sudo mv "$APPDIR/Affinity Publisher.app" "$TMPDIR/Affinity Publisher.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity/darwin.json

=== Install // fdf5531d -> a2fecb23 ===

--- /tmp/old.dr3MQj	2026-10-09 13:41:38.695285703 +0000
+++ /tmp/new.2D9XCN	2026-10-09 13:41:38.696285694 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.canva.affinity'
+quit_and_track_application 'com.canva.affinity' || exit 1
 if [ -d "$APPDIR/Affinity.app" ]; then
 	sudo mv "$APPDIR/Affinity.app" "$TMPDIR/Affinity.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airbuddy/darwin.json

=== Install // d2a86d92 -> 7b21ae83 ===

--- /tmp/old.U3VInR	2026-10-09 13:41:38.750285210 +0000
+++ /tmp/new.SvaaS8	2026-10-09 13:41:38.750285210 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'codes.rambo.AirBuddy'
+quit_and_track_application 'codes.rambo.AirBuddy' || exit 1
 if [ -d "$APPDIR/AirBuddy.app" ]; then
 	sudo mv "$APPDIR/AirBuddy.app" "$TMPDIR/AirBuddy.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/aircall/darwin.json

=== Install // 029a5c4f -> d2822533 ===

--- /tmp/old.myWrad	2026-10-09 13:41:38.836284438 +0000
+++ /tmp/new.wXMhsD	2026-10-09 13:41:38.836284438 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'io.aircall.phone'
+quit_and_track_application 'io.aircall.phone' || exit 1
 if [ -d "$APPDIR/Aircall.app" ]; then
 	sudo mv "$APPDIR/Aircall.app" "$TMPDIR/Aircall.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airdroid/darwin.json

=== Install // e797e90d -> ca7f26c3 ===

--- /tmp/old.qhqZbC	2026-10-09 13:41:38.919283694 +0000
+++ /tmp/new.Tbv5lk	2026-10-09 13:41:38.919283694 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.sandstudio.airdroid'
+quit_and_track_application 'com.sandstudio.airdroid' || exit 1
 if [ -d "$APPDIR/AirDroid.app" ]; then
 	sudo mv "$APPDIR/AirDroid.app" "$TMPDIR/AirDroid.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airparrot/darwin.json

=== Install // a5af95d5 -> 96af4da7 ===

--- /tmp/old.9pHdE9	2026-10-09 13:41:38.970283237 +0000
+++ /tmp/new.QGbY3V	2026-10-09 13:41:38.970283237 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.squirrels.AirParrot-3'
+quit_and_track_application 'com.squirrels.AirParrot-3' || exit 1
 if [ -d "$APPDIR/AirParrot 3.app" ]; then
 	sudo mv "$APPDIR/AirParrot 3.app" "$TMPDIR/AirParrot 3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airserver/darwin.json

=== Install // 14e82afb -> c1c9eeb0 ===

--- /tmp/old.gNCTFm	2026-10-09 13:41:39.053282493 +0000
+++ /tmp/new.dYBUpO	2026-10-09 13:41:39.053282493 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.pratikkumar.airserver-mac'
+quit_and_track_application 'com.pratikkumar.airserver-mac' || exit 1
 if [ -d "$APPDIR/AirServer.app" ]; then
 	sudo mv "$APPDIR/AirServer.app" "$TMPDIR/AirServer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airtable/darwin.json

=== Install // 63fb1973 -> b519bd11 ===

--- /tmp/old.pOk5j3	2026-10-09 13:41:39.136281748 +0000
+++ /tmp/new.x35bYK	2026-10-09 13:41:39.136281748 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.FormaGrid.Airtable'
+quit_and_track_application 'com.FormaGrid.Airtable' || exit 1
 if [ -d "$APPDIR/Airtable.app" ]; then
 	sudo mv "$APPDIR/Airtable.app" "$TMPDIR/Airtable.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airtame/darwin.json

=== Install // 4e4b470a -> c9dd1521 ===

--- /tmp/old.rVNulC	2026-10-09 13:41:39.228280923 +0000
+++ /tmp/new.wSl2Dy	2026-10-09 13:41:39.228280923 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.airtame.airtame-application'
+quit_and_track_application 'com.airtame.airtame-application' || exit 1
 if [ -d "$APPDIR/Airtame.app" ]; then
 	sudo mv "$APPDIR/Airtame.app" "$TMPDIR/Airtame.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airy/darwin.json

=== Install // f9303b49 -> 5890c299 ===

--- /tmp/old.iUusld	2026-10-09 13:41:39.311280179 +0000
+++ /tmp/new.LHdJHK	2026-10-09 13:41:39.311280179 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.eltima.Airy'
+quit_and_track_application 'com.eltima.Airy' || exit 1
 if [ -d "$APPDIR/Airy.app" ]; then
 	sudo mv "$APPDIR/Airy.app" "$TMPDIR/Airy.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/akiflow/darwin.json

=== Install // 7d580667 -> 3bd2344c ===

--- /tmp/old.qSa0Kz	2026-10-09 13:41:39.351279820 +0000
+++ /tmp/new.c5GYZF	2026-10-09 13:41:39.351279820 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.akiflow.akiflow'
+quit_and_track_application 'com.akiflow.akiflow' || exit 1
 if [ -d "$APPDIR/Akiflow.app" ]; then
 	sudo mv "$APPDIR/Akiflow.app" "$TMPDIR/Akiflow.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/alcove/darwin.json

=== Install // f0f034e7 -> e67c72e8 ===

--- /tmp/old.yc4j0n	2026-10-09 13:41:39.435279067 +0000
+++ /tmp/new.zUZcY4	2026-10-09 13:41:39.435279067 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.henrikruscon.Alcove'
+quit_and_track_application 'com.henrikruscon.Alcove' || exit 1
 if [ -d "$APPDIR/Alcove.app" ]; then
 	sudo mv "$APPDIR/Alcove.app" "$TMPDIR/Alcove.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

Showing 37 of 938 changed files. See the job log for the full diff.

@coderabbitai

coderabbitai Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR

🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR


  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.07%. Comparing base (4dc1d64) to head (932c54f).
⚠️ Report is 41 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #55214      +/-   ##
==========================================
- Coverage   77.08%   77.07%   -0.01%     
==========================================
  Files        4294     4295       +1     
  Lines      264761   264801      +40     
  Branches    15436    15603     +167     
==========================================
+ Hits       204084   204097      +13     
- Misses      60496    60524      +28     
+ Partials      181      180       -1     
Flag Coverage Δ
frontend 70.98% <ø> (+0.12%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@allenhouchins
allenhouchins marked this pull request as draft October 9, 2026 13:49
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/inputs/homebrew/updf.json

Error: File 'ee/maintained-apps/inputs/homebrew/updf.json' does not exist

ee/maintained-apps/outputs/010-editor/darwin.json

=== Install // b3fb6381 -> b028db6c ===

--- /tmp/old.uGgO84	2026-10-09 14:45:21.509286341 +0000
+++ /tmp/new.xL0ydy	2026-10-09 14:45:21.509286341 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.SweetScape.010Editor'
+quit_and_track_application 'com.SweetScape.010Editor' || exit 1
 if [ -d "$APPDIR/010 Editor.app" ]; then
 	sudo mv "$APPDIR/010 Editor.app" "$TMPDIR/010 Editor.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-slideshow-maker/darwin.json

=== Install // 4d6c6c3a -> 120045c5 ===

--- /tmp/old.Vpfjyd	2026-10-09 14:45:21.570287599 +0000
+++ /tmp/new.TcozXM	2026-10-09 14:45:21.570287599 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kslideshowmaker'
+quit_and_track_application 'com.openmedia.4kslideshowmaker' || exit 1
 if [ -d "$APPDIR/4K Slideshow Maker.app" ]; then
 	sudo mv "$APPDIR/4K Slideshow Maker.app" "$TMPDIR/4K Slideshow Maker.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-stogram/darwin.json

=== Install // 17ba87c2 -> 47939f0d ===

--- /tmp/old.FxeAss	2026-10-09 14:45:21.631288857 +0000
+++ /tmp/new.ngdok3	2026-10-09 14:45:21.631288857 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kstogram'
+quit_and_track_application 'com.openmedia.4kstogram' || exit 1
 if [ -d "$APPDIR/4K Stogram.app" ]; then
 	sudo mv "$APPDIR/4K Stogram.app" "$TMPDIR/4K Stogram.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-video-downloader/darwin.json

=== Install // b39acc12 -> 2ca9b287 ===

--- /tmp/old.UDMrgl	2026-10-09 14:45:21.692290116 +0000
+++ /tmp/new.2QQYs2	2026-10-09 14:45:21.692290116 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.4kdownload.ApplicationDirectories'
+quit_and_track_application 'com.4kdownload.ApplicationDirectories' || exit 1
 if [ -d "$APPDIR/4K Video Downloader.app" ]; then
 	sudo mv "$APPDIR/4K Video Downloader.app" "$TMPDIR/4K Video Downloader.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-video-to-mp3/darwin.json

=== Install // 7e311119 -> 2fb10684 ===

--- /tmp/old.pO0tt4	2026-10-09 14:45:21.755291415 +0000
+++ /tmp/new.IrTp6G	2026-10-09 14:45:21.755291415 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kvideotomp3'
+quit_and_track_application 'com.openmedia.4kvideotomp3' || exit 1
 if [ -d "$APPDIR/4K Video to MP3.app" ]; then
 	sudo mv "$APPDIR/4K Video to MP3.app" "$TMPDIR/4K Video to MP3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-youtube-to-mp3/darwin.json

=== Install // 86bee2e4 -> f1ede0da ===

--- /tmp/old.Ap1CLt	2026-10-09 14:45:21.797292281 +0000
+++ /tmp/new.VGWxHQ	2026-10-09 14:45:21.797292281 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kyoutubetomp3'
+quit_and_track_application 'com.openmedia.4kyoutubetomp3' || exit 1
 if [ -d "$APPDIR/4K YouTube to MP3.app" ]; then
 	sudo mv "$APPDIR/4K YouTube to MP3.app" "$TMPDIR/4K YouTube to MP3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/8x8-work/darwin.json

=== Install // 18ff65bc -> 5f8bc9e2 ===

--- /tmp/old.ZcdZ7D	2026-10-09 14:45:21.853293436 +0000
+++ /tmp/new.w4Gkux	2026-10-09 14:45:21.853293436 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.electron.8x8---virtual-office'
+quit_and_track_application 'com.electron.8x8---virtual-office' || exit 1
 if [ -d "$APPDIR/8x8 Work.app" ]; then
 	sudo mv "$APPDIR/8x8 Work.app" "$TMPDIR/8x8 Work.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/a-better-finder-rename/darwin.json

=== Install // 07711880 -> 1cad6619 ===

--- /tmp/old.Ln6SNC	2026-10-09 14:45:21.889294179 +0000
+++ /tmp/new.99dNRw	2026-10-09 14:45:21.889294179 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'net.publicspace.abfr12'
+quit_and_track_application 'net.publicspace.abfr12' || exit 1
 if [ -d "$APPDIR/A Better Finder Rename 12.app" ]; then
 	sudo mv "$APPDIR/A Better Finder Rename 12.app" "$TMPDIR/A Better Finder Rename 12.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/ableton-live-suite/darwin.json

=== Install // 9ea4cfbf -> 68d89f83 ===

--- /tmp/old.5M80EV	2026-10-09 14:45:21.939295210 +0000
+++ /tmp/new.O0s7m8	2026-10-09 14:45:21.939295210 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.ableton.live'
+quit_and_track_application 'com.ableton.live' || exit 1
 if [ -d "$APPDIR/Ableton Live 12 Suite.app" ]; then
 	sudo mv "$APPDIR/Ableton Live 12 Suite.app" "$TMPDIR/Ableton Live 12 Suite.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/acorn/darwin.json

=== Install // 905a9e15 -> 08e60748 ===

--- /tmp/old.qujOmZ	2026-10-09 14:45:21.991296283 +0000
+++ /tmp/new.g0WHDF	2026-10-09 14:45:21.992296304 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.flyingmeat.Acorn8'
+quit_and_track_application 'com.flyingmeat.Acorn8' || exit 1
 if [ -d "$APPDIR/Acorn.app" ]; then
 	sudo mv "$APPDIR/Acorn.app" "$TMPDIR/Acorn.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/activedock/darwin.json

=== Install // 8971cbeb -> f68065ec ===

--- /tmp/old.IziihH	2026-10-09 14:45:22.026297005 +0000
+++ /tmp/new.TvylOE	2026-10-09 14:45:22.027297026 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.sergey-gerasimenko.ActiveDock-2'
+quit_and_track_application 'com.sergey-gerasimenko.ActiveDock-2' || exit 1
 if [ -d "$APPDIR/ActiveDock 2.app" ]; then
 	sudo mv "$APPDIR/ActiveDock 2.app" "$TMPDIR/ActiveDock 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/activitywatch/darwin.json

=== Install // 879d6b6f -> 0aca71f3 ===

--- /tmp/old.yz7XBv	2026-10-09 14:45:22.060297706 +0000
+++ /tmp/new.C6YGZK	2026-10-09 14:45:22.060297706 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'net.activitywatch.ActivityWatch'
+quit_and_track_application 'net.activitywatch.ActivityWatch' || exit 1
 if [ -d "$APPDIR/ActivityWatch.app" ]; then
 	sudo mv "$APPDIR/ActivityWatch.app" "$TMPDIR/ActivityWatch.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/actual/darwin.json

=== Install // a6f737ee -> 878a043e ===

--- /tmp/old.c3O0mU	2026-10-09 14:45:22.098298490 +0000
+++ /tmp/new.3MpSmJ	2026-10-09 14:45:22.098298490 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.actualbudget.actual'
+quit_and_track_application 'com.actualbudget.actual' || exit 1
 if [ -d "$APPDIR/Actual.app" ]; then
 	sudo mv "$APPDIR/Actual.app" "$TMPDIR/Actual.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adguard/darwin.json

=== Install // bd04834e -> 97e137ce ===

--- /tmp/old.obHUa1	2026-10-09 14:45:22.159299748 +0000
+++ /tmp/new.0i382s	2026-10-09 14:45:22.159299748 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adguard.mac.adguard'
+quit_and_track_application 'com.adguard.mac.adguard' || exit 1
 sudo installer -pkg "$TMPDIR/AdGuard.pkg" -target / || exit $?
 relaunch_application 'com.adguard.mac.adguard'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adlock/darwin.json

=== Install // fd5fc85e -> b1ca7e43 ===

--- /tmp/old.bEnqPJ	2026-10-09 14:45:22.202300635 +0000
+++ /tmp/new.UH5Ydz	2026-10-09 14:45:22.202300635 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.hankuper.adlock.desktop'
+quit_and_track_application 'com.hankuper.adlock.desktop' || exit 1
 sudo installer -pkg "$TMPDIR/AdLock-Installer.pkg" -target / || exit $?
 relaunch_application 'com.hankuper.adlock.desktop'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-acrobat-reader/darwin.json

=== Install // 5f5f2226 -> 60fa0fce ===

--- /tmp/old.A4hiFZ	2026-10-09 14:45:22.263301894 +0000
+++ /tmp/new.PbdAct	2026-10-09 14:45:22.263301894 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.Reader'
+quit_and_track_application 'com.adobe.Reader' || exit 1
 sudo installer -pkg "$TMPDIR/AcroRdrDC_2600121662_MUI.pkg" -target / || exit $?
 relaunch_application 'com.adobe.Reader'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-digital-editions/darwin.json

=== Install // 0348c9d5 -> 32927f34 ===

--- /tmp/old.zwPIrN	2026-10-09 14:45:22.322303111 +0000
+++ /tmp/new.YAS8Mc	2026-10-09 14:45:22.322303111 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.adobedigitaleditions.app'
+quit_and_track_application 'com.adobe.adobedigitaleditions.app' || exit 1
 sudo installer -pkg "$TMPDIR/Digital Editions 4.5 Installer.pkg" -target / || exit $?
 relaunch_application 'com.adobe.adobedigitaleditions.app'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-dng-converter/darwin.json

=== Install // de693a0a -> 597af862 ===

--- /tmp/old.PzW4HS	2026-10-09 14:45:22.364303977 +0000
+++ /tmp/new.tboapK	2026-10-09 14:45:22.364303977 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.DNGConverter'
+quit_and_track_application 'com.adobe.DNGConverter' || exit 1
 sudo installer -pkg "$TMPDIR/DNGConverter_18_7.pkg" -target / || exit $?
 relaunch_application 'com.adobe.DNGConverter'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/advanced-renamer/darwin.json

=== Install // 98d31102 -> 22136d18 ===

--- /tmp/old.wjA8mA	2026-10-09 14:45:22.403304781 +0000
+++ /tmp/new.6ebop3	2026-10-09 14:45:22.403304781 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.HulubuluSoftware.AdvancedRenamer'
+quit_and_track_application 'com.HulubuluSoftware.AdvancedRenamer' || exit 1
 if [ -d "$APPDIR/Advanced Renamer.app" ]; then
 	sudo mv "$APPDIR/Advanced Renamer.app" "$TMPDIR/Advanced Renamer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-designer/darwin.json

=== Install // 36d1e230 -> 85dd84eb ===

--- /tmp/old.cbIhlQ	2026-10-09 14:45:22.462305998 +0000
+++ /tmp/new.LTYgBJ	2026-10-09 14:45:22.462305998 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitydesigner2'
+quit_and_track_application 'com.seriflabs.affinitydesigner2' || exit 1
 if [ -d "$APPDIR/Affinity Designer 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Designer 2.app" "$TMPDIR/Affinity Designer 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-designer@1/darwin.json

=== Install // 2a9da685 -> 95b22c6d ===

--- /tmp/old.c1qNUa	2026-10-09 14:45:22.523307257 +0000
+++ /tmp/new.MnGNPj	2026-10-09 14:45:22.523307257 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitydesigner'
+quit_and_track_application 'com.seriflabs.affinitydesigner' || exit 1
 if [ -d "$APPDIR/Affinity Designer.app" ]; then
 	sudo mv "$APPDIR/Affinity Designer.app" "$TMPDIR/Affinity Designer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-photo/darwin.json

=== Install // 116af54f -> be18ecb4 ===

--- /tmp/old.EFsiif	2026-10-09 14:45:22.584308515 +0000
+++ /tmp/new.7erk3f	2026-10-09 14:45:22.584308515 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinityphoto2'
+quit_and_track_application 'com.seriflabs.affinityphoto2' || exit 1
 if [ -d "$APPDIR/Affinity Photo 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Photo 2.app" "$TMPDIR/Affinity Photo 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-photo@1/darwin.json

=== Install // e97a663f -> ac444c5f ===

--- /tmp/old.Ugax8D	2026-10-09 14:45:22.652309918 +0000
+++ /tmp/new.nNcooF	2026-10-09 14:45:22.652309918 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinityphoto'
+quit_and_track_application 'com.seriflabs.affinityphoto' || exit 1
 if [ -d "$APPDIR/Affinity Photo.app" ]; then
 	sudo mv "$APPDIR/Affinity Photo.app" "$TMPDIR/Affinity Photo.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-publisher/darwin.json

=== Install // db783e5c -> 97aedeca ===

--- /tmp/old.9xFIjs	2026-10-09 14:45:22.712311155 +0000
+++ /tmp/new.U18sF1	2026-10-09 14:45:22.712311155 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitypublisher2'
+quit_and_track_application 'com.seriflabs.affinitypublisher2' || exit 1
 if [ -d "$APPDIR/Affinity Publisher 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Publisher 2.app" "$TMPDIR/Affinity Publisher 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-publisher@1/darwin.json

=== Install // 5a22e6ad -> 7327fe72 ===

--- /tmp/old.4lMEft	2026-10-09 14:45:22.773312413 +0000
+++ /tmp/new.bUfI3B	2026-10-09 14:45:22.773312413 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitypublisher'
+quit_and_track_application 'com.seriflabs.affinitypublisher' || exit 1
 if [ -d "$APPDIR/Affinity Publisher.app" ]; then
 	sudo mv "$APPDIR/Affinity Publisher.app" "$TMPDIR/Affinity Publisher.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity/darwin.json

=== Install // fdf5531d -> a2fecb23 ===

--- /tmp/old.Oalzgw	2026-10-09 14:45:22.806313094 +0000
+++ /tmp/new.K2BaFS	2026-10-09 14:45:22.806313094 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.canva.affinity'
+quit_and_track_application 'com.canva.affinity' || exit 1
 if [ -d "$APPDIR/Affinity.app" ]; then
 	sudo mv "$APPDIR/Affinity.app" "$TMPDIR/Affinity.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airbuddy/darwin.json

=== Install // d2a86d92 -> 7b21ae83 ===

--- /tmp/old.hluAHH	2026-10-09 14:45:22.849313981 +0000
+++ /tmp/new.ttlgOv	2026-10-09 14:45:22.849313981 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'codes.rambo.AirBuddy'
+quit_and_track_application 'codes.rambo.AirBuddy' || exit 1
 if [ -d "$APPDIR/AirBuddy.app" ]; then
 	sudo mv "$APPDIR/AirBuddy.app" "$TMPDIR/AirBuddy.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/aircall/darwin.json

=== Install // 029a5c4f -> d2822533 ===

--- /tmp/old.Ir6vwl	2026-10-09 14:45:22.909315219 +0000
+++ /tmp/new.rrZHbP	2026-10-09 14:45:22.909315219 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'io.aircall.phone'
+quit_and_track_application 'io.aircall.phone' || exit 1
 if [ -d "$APPDIR/Aircall.app" ]; then
 	sudo mv "$APPDIR/Aircall.app" "$TMPDIR/Aircall.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airdroid/darwin.json

=== Install // e797e90d -> ca7f26c3 ===

--- /tmp/old.k2wAwy	2026-10-09 14:45:22.968316436 +0000
+++ /tmp/new.Kg5fDH	2026-10-09 14:45:22.968316436 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.sandstudio.airdroid'
+quit_and_track_application 'com.sandstudio.airdroid' || exit 1
 if [ -d "$APPDIR/AirDroid.app" ]; then
 	sudo mv "$APPDIR/AirDroid.app" "$TMPDIR/AirDroid.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airparrot/darwin.json

=== Install // a5af95d5 -> 96af4da7 ===

--- /tmp/old.Wrzrby	2026-10-09 14:45:23.009317281 +0000
+++ /tmp/new.P6VNeH	2026-10-09 14:45:23.010317302 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.squirrels.AirParrot-3'
+quit_and_track_application 'com.squirrels.AirParrot-3' || exit 1
 if [ -d "$APPDIR/AirParrot 3.app" ]; then
 	sudo mv "$APPDIR/AirParrot 3.app" "$TMPDIR/AirParrot 3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airserver/darwin.json

=== Install // 14e82afb -> c1c9eeb0 ===

--- /tmp/old.LG0uMV	2026-10-09 14:45:23.070318540 +0000
+++ /tmp/new.NSEM6s	2026-10-09 14:45:23.070318540 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.pratikkumar.airserver-mac'
+quit_and_track_application 'com.pratikkumar.airserver-mac' || exit 1
 if [ -d "$APPDIR/AirServer.app" ]; then
 	sudo mv "$APPDIR/AirServer.app" "$TMPDIR/AirServer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airtable/darwin.json

=== Install // 63fb1973 -> b519bd11 ===

--- /tmp/old.0jxumc	2026-10-09 14:45:23.137319922 +0000
+++ /tmp/new.dppJLS	2026-10-09 14:45:23.137319922 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.FormaGrid.Airtable'
+quit_and_track_application 'com.FormaGrid.Airtable' || exit 1
 if [ -d "$APPDIR/Airtable.app" ]; then
 	sudo mv "$APPDIR/Airtable.app" "$TMPDIR/Airtable.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airtame/darwin.json

=== Install // 4e4b470a -> c9dd1521 ===

--- /tmp/old.6sORBY	2026-10-09 14:45:23.216321551 +0000
+++ /tmp/new.sKXIPR	2026-10-09 14:45:23.217321572 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.airtame.airtame-application'
+quit_and_track_application 'com.airtame.airtame-application' || exit 1
 if [ -d "$APPDIR/Airtame.app" ]; then
 	sudo mv "$APPDIR/Airtame.app" "$TMPDIR/Airtame.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airy/darwin.json

=== Install // f9303b49 -> 5890c299 ===

--- /tmp/old.a4XdoC	2026-10-09 14:45:23.291323098 +0000
+++ /tmp/new.mh2F46	2026-10-09 14:45:23.291323098 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.eltima.Airy'
+quit_and_track_application 'com.eltima.Airy' || exit 1
 if [ -d "$APPDIR/Airy.app" ]; then
 	sudo mv "$APPDIR/Airy.app" "$TMPDIR/Airy.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/akiflow/darwin.json

=== Install // 7d580667 -> 3bd2344c ===

--- /tmp/old.sCMnSK	2026-10-09 14:45:23.325323800 +0000
+++ /tmp/new.UJZmGC	2026-10-09 14:45:23.325323800 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.akiflow.akiflow'
+quit_and_track_application 'com.akiflow.akiflow' || exit 1
 if [ -d "$APPDIR/Akiflow.app" ]; then
 	sudo mv "$APPDIR/Akiflow.app" "$TMPDIR/Akiflow.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/alcove/darwin.json

=== Install // f0f034e7 -> e67c72e8 ===

--- /tmp/old.lj1Ex5	2026-10-09 14:45:23.387325079 +0000
+++ /tmp/new.P7CUYx	2026-10-09 14:45:23.387325079 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.henrikruscon.Alcove'
+quit_and_track_application 'com.henrikruscon.Alcove' || exit 1
 if [ -d "$APPDIR/Alcove.app" ]; then
 	sudo mv "$APPDIR/Alcove.app" "$TMPDIR/Alcove.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

Showing 37 of 938 changed files. See the job log for the full diff.

#55168 meant to keep this output frozen but dropped "frozen": true from
the input, so the regen re-ingested the stale 139 cask and pointed it back
at a DMG that 404s. Restore #55168's output and apply the #55157 quit
helper change to its install script by hand.
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/inputs/homebrew/updf.json

Error: File 'ee/maintained-apps/inputs/homebrew/updf.json' does not exist

ee/maintained-apps/outputs/010-editor/darwin.json

=== Install // b3fb6381 -> b028db6c ===

--- /tmp/old.AGARmI	2026-10-09 15:46:37.768564972 +0000
+++ /tmp/new.GeDcpB	2026-10-09 15:46:37.768564972 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.SweetScape.010Editor'
+quit_and_track_application 'com.SweetScape.010Editor' || exit 1
 if [ -d "$APPDIR/010 Editor.app" ]; then
 	sudo mv "$APPDIR/010 Editor.app" "$TMPDIR/010 Editor.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-slideshow-maker/darwin.json

=== Install // 4d6c6c3a -> 120045c5 ===

--- /tmp/old.cxvvSz	2026-10-09 15:46:37.858567197 +0000
+++ /tmp/new.B6JKXn	2026-10-09 15:46:37.867567420 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kslideshowmaker'
+quit_and_track_application 'com.openmedia.4kslideshowmaker' || exit 1
 if [ -d "$APPDIR/4K Slideshow Maker.app" ]; then
 	sudo mv "$APPDIR/4K Slideshow Maker.app" "$TMPDIR/4K Slideshow Maker.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-stogram/darwin.json

=== Install // 17ba87c2 -> 47939f0d ===

--- /tmp/old.PWVSjA	2026-10-09 15:46:37.946569373 +0000
+++ /tmp/new.27U6wD	2026-10-09 15:46:37.946569373 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kstogram'
+quit_and_track_application 'com.openmedia.4kstogram' || exit 1
 if [ -d "$APPDIR/4K Stogram.app" ]; then
 	sudo mv "$APPDIR/4K Stogram.app" "$TMPDIR/4K Stogram.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-video-downloader/darwin.json

=== Install // b39acc12 -> 2ca9b287 ===

--- /tmp/old.5yzl6z	2026-10-09 15:46:38.021571227 +0000
+++ /tmp/new.9qMeOB	2026-10-09 15:46:38.021571227 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.4kdownload.ApplicationDirectories'
+quit_and_track_application 'com.4kdownload.ApplicationDirectories' || exit 1
 if [ -d "$APPDIR/4K Video Downloader.app" ]; then
 	sudo mv "$APPDIR/4K Video Downloader.app" "$TMPDIR/4K Video Downloader.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-video-to-mp3/darwin.json

=== Install // 7e311119 -> 2fb10684 ===

--- /tmp/old.qfMupv	2026-10-09 15:46:38.093573007 +0000
+++ /tmp/new.SysjGf	2026-10-09 15:46:38.093573007 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kvideotomp3'
+quit_and_track_application 'com.openmedia.4kvideotomp3' || exit 1
 if [ -d "$APPDIR/4K Video to MP3.app" ]; then
 	sudo mv "$APPDIR/4K Video to MP3.app" "$TMPDIR/4K Video to MP3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/4k-youtube-to-mp3/darwin.json

=== Install // 86bee2e4 -> f1ede0da ===

--- /tmp/old.MWtMjG	2026-10-09 15:46:38.143574244 +0000
+++ /tmp/new.MYgP9L	2026-10-09 15:46:38.143574244 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.openmedia.4kyoutubetomp3'
+quit_and_track_application 'com.openmedia.4kyoutubetomp3' || exit 1
 if [ -d "$APPDIR/4K YouTube to MP3.app" ]; then
 	sudo mv "$APPDIR/4K YouTube to MP3.app" "$TMPDIR/4K YouTube to MP3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/8x8-work/darwin.json

=== Install // 18ff65bc -> 5f8bc9e2 ===

--- /tmp/old.6KodVe	2026-10-09 15:46:38.217576073 +0000
+++ /tmp/new.l83b3x	2026-10-09 15:46:38.218576098 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.electron.8x8---virtual-office'
+quit_and_track_application 'com.electron.8x8---virtual-office' || exit 1
 if [ -d "$APPDIR/8x8 Work.app" ]; then
 	sudo mv "$APPDIR/8x8 Work.app" "$TMPDIR/8x8 Work.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/a-better-finder-rename/darwin.json

=== Install // 07711880 -> 1cad6619 ===

--- /tmp/old.aFQx7r	2026-10-09 15:46:38.279577606 +0000
+++ /tmp/new.OIIwKZ	2026-10-09 15:46:38.279577606 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'net.publicspace.abfr12'
+quit_and_track_application 'net.publicspace.abfr12' || exit 1
 if [ -d "$APPDIR/A Better Finder Rename 12.app" ]; then
 	sudo mv "$APPDIR/A Better Finder Rename 12.app" "$TMPDIR/A Better Finder Rename 12.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/ableton-live-suite/darwin.json

=== Install // 9ea4cfbf -> 68d89f83 ===

--- /tmp/old.BEczjd	2026-10-09 15:46:38.365579733 +0000
+++ /tmp/new.uojrzj	2026-10-09 15:46:38.365579733 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.ableton.live'
+quit_and_track_application 'com.ableton.live' || exit 1
 if [ -d "$APPDIR/Ableton Live 12 Suite.app" ]; then
 	sudo mv "$APPDIR/Ableton Live 12 Suite.app" "$TMPDIR/Ableton Live 12 Suite.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/acorn/darwin.json

=== Install // 905a9e15 -> 08e60748 ===

--- /tmp/old.KOQnL7	2026-10-09 15:46:38.536583960 +0000
+++ /tmp/new.H7Oo2K	2026-10-09 15:46:38.537583985 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.flyingmeat.Acorn8'
+quit_and_track_application 'com.flyingmeat.Acorn8' || exit 1
 if [ -d "$APPDIR/Acorn.app" ]; then
 	sudo mv "$APPDIR/Acorn.app" "$TMPDIR/Acorn.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/activedock/darwin.json

=== Install // 8971cbeb -> f68065ec ===

--- /tmp/old.9o1HEz	2026-10-09 15:46:38.580585048 +0000
+++ /tmp/new.qxsFlK	2026-10-09 15:46:38.580585048 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.sergey-gerasimenko.ActiveDock-2'
+quit_and_track_application 'com.sergey-gerasimenko.ActiveDock-2' || exit 1
 if [ -d "$APPDIR/ActiveDock 2.app" ]; then
 	sudo mv "$APPDIR/ActiveDock 2.app" "$TMPDIR/ActiveDock 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/activitywatch/darwin.json

=== Install // 879d6b6f -> 0aca71f3 ===

--- /tmp/old.fKq3RS	2026-10-09 15:46:38.621586062 +0000
+++ /tmp/new.n2FJs7	2026-10-09 15:46:38.621586062 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'net.activitywatch.ActivityWatch'
+quit_and_track_application 'net.activitywatch.ActivityWatch' || exit 1
 if [ -d "$APPDIR/ActivityWatch.app" ]; then
 	sudo mv "$APPDIR/ActivityWatch.app" "$TMPDIR/ActivityWatch.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/actual/darwin.json

=== Install // a6f737ee -> 878a043e ===

--- /tmp/old.1ln8rf	2026-10-09 15:46:38.669587249 +0000
+++ /tmp/new.702yCt	2026-10-09 15:46:38.669587249 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.actualbudget.actual'
+quit_and_track_application 'com.actualbudget.actual' || exit 1
 if [ -d "$APPDIR/Actual.app" ]; then
 	sudo mv "$APPDIR/Actual.app" "$TMPDIR/Actual.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adguard/darwin.json

=== Install // bd04834e -> 97e137ce ===

--- /tmp/old.oM6Dkj	2026-10-09 15:46:38.745589128 +0000
+++ /tmp/new.7eHx3W	2026-10-09 15:46:38.745589128 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adguard.mac.adguard'
+quit_and_track_application 'com.adguard.mac.adguard' || exit 1
 sudo installer -pkg "$TMPDIR/AdGuard.pkg" -target / || exit $?
 relaunch_application 'com.adguard.mac.adguard'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adlock/darwin.json

=== Install // fd5fc85e -> b1ca7e43 ===

--- /tmp/old.ocqFey	2026-10-09 15:46:38.817590908 +0000
+++ /tmp/new.QPwblR	2026-10-09 15:46:38.818590933 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.hankuper.adlock.desktop'
+quit_and_track_application 'com.hankuper.adlock.desktop' || exit 1
 sudo installer -pkg "$TMPDIR/AdLock-Installer.pkg" -target / || exit $?
 relaunch_application 'com.hankuper.adlock.desktop'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-acrobat-reader/darwin.json

=== Install // 5f5f2226 -> 60fa0fce ===

--- /tmp/old.2RjG2H	2026-10-09 15:46:38.894592812 +0000
+++ /tmp/new.J27PAO	2026-10-09 15:46:38.894592812 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.Reader'
+quit_and_track_application 'com.adobe.Reader' || exit 1
 sudo installer -pkg "$TMPDIR/AcroRdrDC_2600121662_MUI.pkg" -target / || exit $?
 relaunch_application 'com.adobe.Reader'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-digital-editions/darwin.json

=== Install // 0348c9d5 -> 32927f34 ===

--- /tmp/old.AgiTyp	2026-10-09 15:46:38.970594691 +0000
+++ /tmp/new.FPuwMI	2026-10-09 15:46:38.970594691 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.adobedigitaleditions.app'
+quit_and_track_application 'com.adobe.adobedigitaleditions.app' || exit 1
 sudo installer -pkg "$TMPDIR/Digital Editions 4.5 Installer.pkg" -target / || exit $?
 relaunch_application 'com.adobe.adobedigitaleditions.app'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/adobe-dng-converter/darwin.json

=== Install // de693a0a -> 597af862 ===

--- /tmp/old.21pgu1	2026-10-09 15:46:39.028596125 +0000
+++ /tmp/new.D3Pvfv	2026-10-09 15:46:39.028596125 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,6 +100,6 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # install pkg files
-quit_and_track_application 'com.adobe.DNGConverter'
+quit_and_track_application 'com.adobe.DNGConverter' || exit 1
 sudo installer -pkg "$TMPDIR/DNGConverter_18_7.pkg" -target / || exit $?
 relaunch_application 'com.adobe.DNGConverter'

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/advanced-renamer/darwin.json

=== Install // 98d31102 -> 22136d18 ===

--- /tmp/old.zhcsBe	2026-10-09 15:46:39.076597312 +0000
+++ /tmp/new.4sVShO	2026-10-09 15:46:39.076597312 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.HulubuluSoftware.AdvancedRenamer'
+quit_and_track_application 'com.HulubuluSoftware.AdvancedRenamer' || exit 1
 if [ -d "$APPDIR/Advanced Renamer.app" ]; then
 	sudo mv "$APPDIR/Advanced Renamer.app" "$TMPDIR/Advanced Renamer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-designer/darwin.json

=== Install // 36d1e230 -> 85dd84eb ===

--- /tmp/old.VZtqIM	2026-10-09 15:46:39.150599141 +0000
+++ /tmp/new.vL2nXE	2026-10-09 15:46:39.150599141 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitydesigner2'
+quit_and_track_application 'com.seriflabs.affinitydesigner2' || exit 1
 if [ -d "$APPDIR/Affinity Designer 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Designer 2.app" "$TMPDIR/Affinity Designer 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-designer@1/darwin.json

=== Install // 2a9da685 -> 95b22c6d ===

--- /tmp/old.THimRO	2026-10-09 15:46:39.225600996 +0000
+++ /tmp/new.JMCNxD	2026-10-09 15:46:39.225600996 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitydesigner'
+quit_and_track_application 'com.seriflabs.affinitydesigner' || exit 1
 if [ -d "$APPDIR/Affinity Designer.app" ]; then
 	sudo mv "$APPDIR/Affinity Designer.app" "$TMPDIR/Affinity Designer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-photo/darwin.json

=== Install // 116af54f -> be18ecb4 ===

--- /tmp/old.ICAKrC	2026-10-09 15:46:39.299602825 +0000
+++ /tmp/new.KUzqFl	2026-10-09 15:46:39.299602825 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinityphoto2'
+quit_and_track_application 'com.seriflabs.affinityphoto2' || exit 1
 if [ -d "$APPDIR/Affinity Photo 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Photo 2.app" "$TMPDIR/Affinity Photo 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-photo@1/darwin.json

=== Install // e97a663f -> ac444c5f ===

--- /tmp/old.iPbsqq	2026-10-09 15:46:39.373604655 +0000
+++ /tmp/new.1AoLD8	2026-10-09 15:46:39.373604655 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinityphoto'
+quit_and_track_application 'com.seriflabs.affinityphoto' || exit 1
 if [ -d "$APPDIR/Affinity Photo.app" ]; then
 	sudo mv "$APPDIR/Affinity Photo.app" "$TMPDIR/Affinity Photo.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-publisher/darwin.json

=== Install // db783e5c -> 97aedeca ===

--- /tmp/old.qpWids	2026-10-09 15:46:39.450606559 +0000
+++ /tmp/new.CDDhbM	2026-10-09 15:46:39.450606559 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitypublisher2'
+quit_and_track_application 'com.seriflabs.affinitypublisher2' || exit 1
 if [ -d "$APPDIR/Affinity Publisher 2.app" ]; then
 	sudo mv "$APPDIR/Affinity Publisher 2.app" "$TMPDIR/Affinity Publisher 2.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity-publisher@1/darwin.json

=== Install // 5a22e6ad -> 7327fe72 ===

--- /tmp/old.EOIRQ9	2026-10-09 15:46:39.524608388 +0000
+++ /tmp/new.VXYGZ5	2026-10-09 15:46:39.524608388 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.seriflabs.affinitypublisher'
+quit_and_track_application 'com.seriflabs.affinitypublisher' || exit 1
 if [ -d "$APPDIR/Affinity Publisher.app" ]; then
 	sudo mv "$APPDIR/Affinity Publisher.app" "$TMPDIR/Affinity Publisher.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/affinity/darwin.json

=== Install // fdf5531d -> a2fecb23 ===

--- /tmp/old.KBUH0h	2026-10-09 15:46:39.563609353 +0000
+++ /tmp/new.t2U3iu	2026-10-09 15:46:39.564609377 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -97,7 +97,7 @@
 # extract contents
 unzip "$INSTALLER_PATH" -d "$TMPDIR"
 # copy to the applications folder
-quit_and_track_application 'com.canva.affinity'
+quit_and_track_application 'com.canva.affinity' || exit 1
 if [ -d "$APPDIR/Affinity.app" ]; then
 	sudo mv "$APPDIR/Affinity.app" "$TMPDIR/Affinity.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airbuddy/darwin.json

=== Install // d2a86d92 -> 7b21ae83 ===

--- /tmp/old.zAotbD	2026-10-09 15:46:39.614610614 +0000
+++ /tmp/new.jU0MQ3	2026-10-09 15:46:39.615610638 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'codes.rambo.AirBuddy'
+quit_and_track_application 'codes.rambo.AirBuddy' || exit 1
 if [ -d "$APPDIR/AirBuddy.app" ]; then
 	sudo mv "$APPDIR/AirBuddy.app" "$TMPDIR/AirBuddy.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/aircall/darwin.json

=== Install // 029a5c4f -> d2822533 ===

--- /tmp/old.fXu7xC	2026-10-09 15:46:39.688612443 +0000
+++ /tmp/new.K8LPrn	2026-10-09 15:46:39.688612443 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'io.aircall.phone'
+quit_and_track_application 'io.aircall.phone' || exit 1
 if [ -d "$APPDIR/Aircall.app" ]; then
 	sudo mv "$APPDIR/Aircall.app" "$TMPDIR/Aircall.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airdroid/darwin.json

=== Install // e797e90d -> ca7f26c3 ===

--- /tmp/old.KJ1S3i	2026-10-09 15:46:39.767614396 +0000
+++ /tmp/new.TCjVfV	2026-10-09 15:46:39.767614396 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.sandstudio.airdroid'
+quit_and_track_application 'com.sandstudio.airdroid' || exit 1
 if [ -d "$APPDIR/AirDroid.app" ]; then
 	sudo mv "$APPDIR/AirDroid.app" "$TMPDIR/AirDroid.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airparrot/darwin.json

=== Install // a5af95d5 -> 96af4da7 ===

--- /tmp/old.c7lHs9	2026-10-09 15:46:39.824615806 +0000
+++ /tmp/new.tk6b1q	2026-10-09 15:46:39.824615806 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.squirrels.AirParrot-3'
+quit_and_track_application 'com.squirrels.AirParrot-3' || exit 1
 if [ -d "$APPDIR/AirParrot 3.app" ]; then
 	sudo mv "$APPDIR/AirParrot 3.app" "$TMPDIR/AirParrot 3.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airserver/darwin.json

=== Install // 14e82afb -> c1c9eeb0 ===

--- /tmp/old.yXlRiz	2026-10-09 15:46:39.899617660 +0000
+++ /tmp/new.gGW1XN	2026-10-09 15:46:39.899617660 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.pratikkumar.airserver-mac'
+quit_and_track_application 'com.pratikkumar.airserver-mac' || exit 1
 if [ -d "$APPDIR/AirServer.app" ]; then
 	sudo mv "$APPDIR/AirServer.app" "$TMPDIR/AirServer.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airtable/darwin.json

=== Install // 63fb1973 -> b519bd11 ===

--- /tmp/old.TO9v8O	2026-10-09 15:46:39.974619514 +0000
+++ /tmp/new.saIcak	2026-10-09 15:46:39.974619514 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.FormaGrid.Airtable'
+quit_and_track_application 'com.FormaGrid.Airtable' || exit 1
 if [ -d "$APPDIR/Airtable.app" ]; then
 	sudo mv "$APPDIR/Airtable.app" "$TMPDIR/Airtable.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airtame/darwin.json

=== Install // 4e4b470a -> c9dd1521 ===

--- /tmp/old.i59OsH	2026-10-09 15:46:40.048621344 +0000
+++ /tmp/new.Tz95pt	2026-10-09 15:46:40.048621344 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.airtame.airtame-application'
+quit_and_track_application 'com.airtame.airtame-application' || exit 1
 if [ -d "$APPDIR/Airtame.app" ]; then
 	sudo mv "$APPDIR/Airtame.app" "$TMPDIR/Airtame.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/airy/darwin.json

=== Install // f9303b49 -> 5890c299 ===

--- /tmp/old.dBpaaL	2026-10-09 15:46:40.124623223 +0000
+++ /tmp/new.f87NDz	2026-10-09 15:46:40.124623223 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.eltima.Airy'
+quit_and_track_application 'com.eltima.Airy' || exit 1
 if [ -d "$APPDIR/Airy.app" ]; then
 	sudo mv "$APPDIR/Airy.app" "$TMPDIR/Airy.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/akiflow/darwin.json

=== Install // 7d580667 -> 3bd2344c ===

--- /tmp/old.X91hbl	2026-10-09 15:46:40.167624286 +0000
+++ /tmp/new.RIp99P	2026-10-09 15:46:40.167624286 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.akiflow.akiflow'
+quit_and_track_application 'com.akiflow.akiflow' || exit 1
 if [ -d "$APPDIR/Akiflow.app" ]; then
 	sudo mv "$APPDIR/Akiflow.app" "$TMPDIR/Akiflow.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/alcove/darwin.json

=== Install // f0f034e7 -> e67c72e8 ===

--- /tmp/old.6wkQgE	2026-10-09 15:46:40.242626141 +0000
+++ /tmp/new.0wywYF	2026-10-09 15:46:40.242626141 +0000
@@ -33,21 +33,21 @@
   echo "Quitting application '$bundle_id'..."
 
   # try to quit the application within the timeout period
-  local quit_success=false
+  local quit_success=false still_running
   SECONDS=0
   while (( SECONDS < timeout_duration )); do
-    if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then
-      if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then
-        echo "Application '$bundle_id' quit successfully."
-        quit_success=true
-        break
-      fi
-    fi
+    osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1
     sleep 1
+    if still_running=$(osascript -e "application id \"$bundle_id\" is running" 2>/dev/null) && [[ "$still_running" == "false" ]]; then
+      echo "Application '$bundle_id' quit successfully."
+      quit_success=true
+      break
+    fi
   done
 
   if [[ "$quit_success" = false ]]; then
     echo "Application '$bundle_id' did not quit."
+    return 1
   fi
 }
 
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.henrikruscon.Alcove'
+quit_and_track_application 'com.henrikruscon.Alcove' || exit 1
 if [ -d "$APPDIR/Alcove.app" ]; then
 	sudo mv "$APPDIR/Alcove.app" "$TMPDIR/Alcove.app.bkp" || exit $?
 fi

=== Uninstall Script (no changes) ===

Showing 37 of 938 changed files. See the job log for the full diff.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The PR description must use the repository template and include the required AI disclosure.

1 open finding
What changed in this PR

Regenerates macOS Fleet-maintained app manifests and updates ingestion tooling.

Changes:

  • Refreshes 27 install scripts with safer application shutdown handling.
  • Removes UPDF, freezes five failing app inputs, and updates Microsoft Defender metadata.
  • Caps script-diff PR comments to avoid GitHub size limits.
File Description
frontend/​pages/​SoftwarePage/​components/​icons/​index.ts Removes UPDF icon mapping.
ee/​maintained-apps/​outputs/​wordservice/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​vivid-app/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​updf/​darwin.json Removes UPDF manifest.
ee/​maintained-apps/​outputs/​timescribe/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​soundanchor/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​smoothscroll/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​sirimote/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​simple-comic/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​selfcontrol/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​plex/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​pibar/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​mos/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​memory/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​keyboardcleantool/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​invesalius/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​hot/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​home-assistant/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​hey-desktop/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​gpodder/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​flycut/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​file-juicer/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​dockview/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​dictionaries/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​deskpad/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​clockify/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​boop/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​apps.json Removes UPDF catalog entry.
ee/​maintained-apps/​outputs/​angry-ip-scanner/​darwin.json Regenerates install script.
ee/​maintained-apps/​outputs/​alloy/​darwin.json Regenerates install script.
ee/​maintained-apps/​inputs/​homebrew/​usage-app.json Freezes updates.
ee/​maintained-apps/​inputs/​homebrew/​updf.json Removes UPDF input.
ee/​maintained-apps/​inputs/​homebrew/​google-gemini.json Freezes updates.
ee/​maintained-apps/​inputs/​homebrew/​garmin-express.json Freezes updates.
ee/​maintained-apps/​inputs/​homebrew/​custom-tap/​Casks/​microsoft-defender.rb Bumps Defender metadata.
ee/​maintained-apps/​inputs/​homebrew/​custom-tap/​api/​microsoft-defender.json Regenerates Defender API metadata.
ee/​maintained-apps/​inputs/​homebrew/​avast-secure-browser.json Freezes updates.
ee/​maintained-apps/​inputs/​homebrew/​anydesk.json Freezes updates.
.github/​workflows/​check-script-diff.yml Truncates oversized PR comments.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/check-script-diff.yml Outdated
// Split content by processing headers and rebuild properly
const parts = output.split(/=== Processing (.+?) ===/);
let formattedOutput = '';
const sections = [];
@allenhouchins
allenhouchins marked this pull request as draft October 10, 2026 01:23
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…scuit) (#55299)

**Related issue:** Part of #54170

Split from #55214 (part 1 of 10). Regenerates the install scripts for
the 93 macOS Fleet-maintained apps from `010-editor` through `biscuit`
(alphabetical by slug) after #55157 changed the shared quit helper to
abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…shortcuts) (#55300)

**Related issue:** Part of #54170

Split from #55214 (part 2 of 10). Regenerates the install scripts for
the 93 macOS Fleet-maintained apps from `bitbox` through
`customshortcuts` (alphabetical by slug) after #55157 changed the shared
quit helper to abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…low) (#55301)

**Related issue:** Part of #54170

Split from #55214 (part 3 of 10). Regenerates the install scripts for
the 93 macOS Fleet-maintained apps from `cyberduck` through `fellow`
(alphabetical by slug) after #55157 changed the shared quit helper to
abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* macOS app installers now verify that an app has fully quit before
replacing it. If it remains open after repeated attempts, installation
stops rather than continuing, helping prevent incomplete or failed
updates.
* Installers that relaunch apps after a successful update continue to do
so; existing recovery behavior for failed app copies is preserved.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…ape) (#55302)

**Related issue:** Part of #54170

Split from #55214 (part 4 of 10). Regenerates the install scripts for
the 93 macOS Fleet-maintained apps from `ferdium` through `inkscape`
(alphabetical by slug) after #55157 changed the shared quit helper to
abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* macOS installations across the updated apps now stop if the app cannot
be closed within 10 seconds, rather than continuing to replace an app
that may still be running. This helps prevent incomplete or disrupted
updates.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…ugh mattermost) (#55303)

**Related issue:** Part of #54170

Split from #55214 (part 5 of 10). Regenerates the install scripts for
the 93 macOS Fleet-maintained apps from `input-source-pro` through
`mattermost` (alphabetical by slug) after #55157 changed the shared quit
helper to abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* macOS app installers now verify that an app has fully quit before
replacing it. If it remains open after 10 seconds, installation stops
instead of proceeding, helping prevent failed or incomplete updates.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…nifocus) (#55304)

**Related issue:** Part of #54170

Split from #55214 (part 6 of 10). Regenerates the install scripts for
the 93 macOS Fleet-maintained apps from `meetingbar` through `omnifocus`
(alphabetical by slug) after #55157 changed the shared quit helper to
abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* macOS app installations now verify that a running app has quit before
proceeding. If it remains open after the wait, installation stops rather
than continuing with the app replacement.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…uip) (#55305)

**Related issue:** Part of #54170

Split from #55214 (part 7 of 10). Regenerates the install scripts for
the 93 macOS Fleet-maintained apps from `omnigraffle` through `quip`
(alphabetical by slug) after #55157 changed the shared quit helper to
abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…55306)

**Related issue:** Part of #54170

Split from #55214 (part 8 of 10). Regenerates the install scripts for
the 93 macOS Fleet-maintained apps from `qview` through `sonos`
(alphabetical by slug) after #55157 changed the shared quit helper to
abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…hrough tripmode) (#55307)

**Related issue:** Part of #54170

Split from #55214 (part 9 of 10). Regenerates the install scripts for
the 93 macOS Fleet-maintained apps from `sony-ps-remote-play` through
`tripmode` (alphabetical by slug) after #55157 changed the shared quit
helper to abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…zwift) (#55308)

**Related issue:** Part of #54170

Split from #55214 (part 10 of 10). Regenerates the install scripts for
the 90 macOS Fleet-maintained apps from `tunnelblick` through `zwift`
(alphabetical by slug) after #55157 changed the shared quit helper to
abort the install when the running app won't quit.

Every file in this PR gets the same change: a new `install_script_ref`
and the regenerated script under `refs`. No versions, installer URLs, or
hashes change here; those are in the "bumps and freezes" split.

The split PRs touch disjoint files, so they can merge in any order
without conflicts.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed app in this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)
allenhouchins added a commit that referenced this pull request Oct 10, 2026
…mps, and freezes (#55298)

**Related issue:** N/A, nightly Fleet-maintained apps ingestion.

Split from #55214. Carries every version, URL, hash, and input change
from the 2026-10-09 nightly run, so the remaining split PRs are
install-script regens only.

- Microsoft Defender: custom-tap cask bumped to 101.26072.0017.
- AnyDesk 9.8.1, Garmin Express 7.29.3, Google Gemini 1.128.7.1072:
version bumps, and the inputs are now frozen.
- Avast Secure Browser, Usage: inputs frozen, versions unchanged.
- Visual Paradigm: installer URL moved to the eu8.dl.visual-paradigm.com
host, same build.
- Willow Voice 2.6.1, WorkFlowy 4.3.2610082012: nightly version bumps.

All nine outputs also pick up the regenerated install script from
#55157.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs against every changed, non-frozen app in
this PR.

## AI

**AI:** Claude Code (claude-fable-5-1)



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Updates**
* Updated macOS releases for AnyDesk, Garmin Express, Google Gemini,
Microsoft Defender, Willow Voice, and Workflowy.
  * Updated the Visual Paradigm installer source.
* **Bug Fixes**
* Installations now stop if a running app cannot be quit within 10
seconds, helping prevent replacement while the app is still open.
* Quit checks now verify the app’s running state before installation
continues.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
allenhouchins added a commit that referenced this pull request Oct 10, 2026
**Related issue:** N/A

Split from #55214. Removes UPDF as a macOS Fleet-maintained app.
download.updf.com serves a Cloudflare challenge to every non-browser
client, so Fleet can't download the installer and the FMA validator
can't check it.

Removes the Homebrew input, the generated output, the `apps.json` entry,
and the app icon in the frontend and website.

## Split PRs from #55214

These touch disjoint files and can merge in any order.

- #55297 Remove UPDF
- #55298 Defender bump, nightly version bumps, and freezes
- #55299 Script regen 1/10: 010-editor through biscuit
- #55300 Script regen 2/10: bitbox through customshortcuts
- #55301 Script regen 3/10: cyberduck through fellow
- #55302 Script regen 4/10: ferdium through inkscape
- #55303 Script regen 5/10: input-source-pro through mattermost
- #55304 Script regen 6/10: meetingbar through omnifocus
- #55305 Script regen 7/10: omnigraffle through quip
- #55306 Script regen 8/10: qview through sonos
- #55307 Script regen 9/10: sony-ps-remote-play through tripmode
- #55308 Script regen 10/10: tunnelblick through zwift

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements), JS
inline code is prevented especially for url redirects, and untrusted
data interpolated into shell scripts/commands is validated against shell
metacharacters.

## Testing

- [ ] QA'd all new/changed functionality manually

The darwin FMA validator runs on this PR; UPDF itself is removed so
there is nothing to validate for it.

## AI

**AI:** Claude Code (claude-fable-5-1)

## Frontend

- [ ] Attached a screenshot or screen recording of each user-visible
change. Screenshot: N/A, this only removes the icon import and map entry
for an app that is no longer in the catalog.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Changes**
* Removed UPDF from the maintained macOS apps list. It is no longer
available through the app catalog or its software icon mapping.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants