Update Fleet-maintained apps#44554
Conversation
Generated automatically with cmd/maintained-apps.
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
Script Diff Resultsee/maintained-apps/outputs/arc/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/dialpad/darwin.json=== Install // 4c1cf23f -> 4f288bf9 ===
--- /tmp/old.B5SGEK 2026-04-30 21:34:34.712357060 +0000
+++ /tmp/new.L9KEZY 2026-04-30 21:34:34.712357060 +0000
@@ -96,10 +96,7 @@
# extract contents
unzip "$INSTALLER_PATH" -d "$TMPDIR"
-# copy to the applications folder
+# install pkg files
quit_and_track_application 'com.electron.dialpad'
-if [ -d "$APPDIR/Dialpad.app" ]; then
- sudo mv "$APPDIR/Dialpad.app" "$TMPDIR/Dialpad.app.bkp"
-fi
-sudo cp -R "$TMPDIR/Dialpad.app" "$APPDIR"
+sudo installer -pkg "$TMPDIR/dialpad.pkg" -target /
relaunch_application 'com.electron.dialpad'
=== Uninstall // baa2497a -> b293e759 ===
--- /tmp/old.JfqICn 2026-04-30 21:34:34.733357251 +0000
+++ /tmp/new.ZNTzGy 2026-04-30 21:34:34.734357260 +0000
@@ -1,10 +1,76 @@
#!/bin/sh
# variables
-APPDIR="/Applications/"
LOGGED_IN_USER=$(scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ { print $3 }')
# functions
+expand_pkgid_and_map() {
+ local PKGID="$1"
+ local FUNC="$2"
+ if [[ "$PKGID" == *"*" ]]; then
+ local prefix="${PKGID%\*}"
+ echo "Expanding wildcard for PKGID: $PKGID"
+ for receipt in $(pkgutil --pkgs | grep "^${prefix}"); do
+ echo "Processing $receipt"
+ "$FUNC" "$receipt"
+ done
+ else
+ "$FUNC" "$PKGID"
+ fi
+}
+
+forget_pkg() {
+ local PKGID="$1"
+ expand_pkgid_and_map "$PKGID" forget_receipt
+}
+
+forget_receipt() {
+ local PKGID="$1"
+ sudo pkgutil --forget "$PKGID"
+}
+
+remove_pkg_files() {
+ local PKGID="$1"
+ expand_pkgid_and_map "$PKGID" remove_receipt_files
+}
+
+remove_receipt_files() {
+ local PKGID="$1"
+ local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION
+
+ echo "pkgutil --pkg-info-plist \"$PKGID\""
+ PKGINFO=$(pkgutil --pkg-info-plist "$PKGID")
+ VOLUME=$(echo "$PKGINFO" | awk '/<key>volume<\/key>/ {getline; gsub(/.*<string>|<\/string>.*/, ""); print}')
+ INSTALL_LOCATION=$(echo "$PKGINFO" | awk '/<key>install-location<\/key>/ {getline; gsub(/.*<string>|<\/string>.*/, ""); print}')
+
+ if [ -z "$INSTALL_LOCATION" ] || [ "$INSTALL_LOCATION" = "/" ]; then
+ FULL_INSTALL_LOCATION="$VOLUME"
+ else
+ FULL_INSTALL_LOCATION="$VOLUME/$INSTALL_LOCATION"
+ FULL_INSTALL_LOCATION=$(echo "$FULL_INSTALL_LOCATION" | sed 's|//|/|g')
+ fi
+
+ echo "sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | tr '\\\\n' '\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf"
+ sudo pkgutil --only-files --files "$PKGID" | sed "s|^|/${INSTALL_LOCATION}/|" | tr '\n' '\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf
+
+ echo "sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\\\n' '\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf"
+ sudo pkgutil --only-dirs --files "$PKGID" | sed "s|^|${FULL_INSTALL_LOCATION}/|" | grep '\.app$' | tr '\n' '\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf
+
+ root_app_dir=$(
+ sudo pkgutil --only-dirs --files "$PKGID" \
+ | sed "s|^|${FULL_INSTALL_LOCATION}/|" \
+ | grep 'Applications' \
+ | awk '{ print length, $0 }' \
+ | sort -n \
+ | head -n1 \
+ | cut -d' ' -f2-
+ )
+ if [ -n "$root_app_dir" ]; then
+ echo "sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :"
+ sudo rmdir -p "$root_app_dir" 2>/dev/null || :
+ fi
+}
+
trash() {
local logged_in_user="$1"
local target_file="$2"
@@ -27,7 +93,8 @@
fi
}
-sudo rm -rf "$APPDIR/Dialpad.app"
+remove_pkg_files 'com.dialpad.Dialpad.pkg'
+forget_pkg 'com.dialpad.Dialpad.pkg'
trash $LOGGED_IN_USER '~/Library/Application Support/Dialpad'
trash $LOGGED_IN_USER '~/Library/Caches/com.electron.dialpad*'
trash $LOGGED_IN_USER '~/Library/HTTPStorages/com.electron.dialpad'ee/maintained-apps/outputs/expressvpn/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/libreoffice/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/loom/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/microsoft-edge/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/zen/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) === |
WalkthroughThis PR updates maintained-apps metadata for multiple macOS apps: bumps Arc to 1.145.0, ExpressVPN to 14.1.0.13058, LibreOffice to 26.2.3, Loom to 0.346.4, Microsoft Edge to 147.0.3912.98, and Zen to 1.19.11b (each updating version, patched SQL threshold, installer_url, and sha256). Dialpad changes switch installer_format from zip to pkg, replace the install flow with a pkg-based installer invocation (sha256 set to no_check), and replace the uninstall flow to remove files registered by pkg receipts and then trash user-level artifacts. Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@ee/maintained-apps/outputs/dialpad/darwin.json`:
- Around line 9-12: The manifest currently disables integrity checks by setting
"sha256": "no_check"; replace that with the real SHA-256 hex checksum for the
PKG at the "installer_url" so the downloader verifies the file. Fetch the
installer from the URL (https://download.dialpad.com/osx/arm64/dialpad.pkg),
compute its SHA-256 digest, and update the "sha256" field in
ee/maintained-apps/outputs/dialpad/darwin.json with the lowercase hex checksum
string (ensuring it matches the actual PKG you uploaded); after updating, re-run
the manifest validation/installer fetch to confirm the checksum matches.
- Around line 9-10: The install flow is still unzipping the downloaded file even
though installer_url now points to a .pkg, so update the install script
referenced by install_script_ref "4f288bf9" to install the PKG directly instead
of unzipping: stop extracting $INSTALLER_PATH into $TMPDIR/dialpad.pkg and call
the system installer (e.g., installer -pkg "$INSTALLER_PATH" -target / or
equivalent) or ensure the script moves the downloaded file to the expected path
before installing; update any references to $TMPDIR/dialpad.pkg accordingly so
the script works with a .pkg URL.
- Around line 19-20: The scripts declare #!/bin/sh but use Bash-only features
(e.g. [[ ]], local, <<<, $EUID, parameter slicing) causing failures; update each
script's shebang to #!/bin/bash or refactor the Bash-specific constructs to
POSIX-compliant equivalents. Locate the Bash usages in functions like
quit_and_track_application and relaunch_application (uses [[ ]], local, $EUID),
and in expand_pkgid_and_map, remove_receipt_files, trash (uses <<<, local,
${target_file:1}, [[ ]]) and either change the top-line to #!/bin/bash or
systematically replace Bashisms (use POSIX test [, avoid local, replace
here-strings, use printf/awk for slicing, etc.) so the installer and uninstaller
run under /bin/sh-compatible shells.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: c9e8e0b0-8ea4-4562-b014-5bf840db04dc
📒 Files selected for processing (7)
ee/maintained-apps/outputs/arc/darwin.jsonee/maintained-apps/outputs/dialpad/darwin.jsonee/maintained-apps/outputs/expressvpn/darwin.jsonee/maintained-apps/outputs/libreoffice/darwin.jsonee/maintained-apps/outputs/loom/darwin.jsonee/maintained-apps/outputs/microsoft-edge/darwin.jsonee/maintained-apps/outputs/zen/darwin.json
| "installer_url": "https://download.dialpad.com/osx/arm64/dialpad.pkg", | ||
| "install_script_ref": "4f288bf9", | ||
| "uninstall_script_ref": "b293e759", | ||
| "sha256": "no_check", |
There was a problem hiding this comment.
Pin a real checksum for the PKG.
"sha256": "no_check" disables installer integrity verification for this manifest. The downloader accepts whatever bytes the URL returns, so this change would execute an unverified package on hosts if the download path is ever tampered with.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@ee/maintained-apps/outputs/dialpad/darwin.json` around lines 9 - 12, The
manifest currently disables integrity checks by setting "sha256": "no_check";
replace that with the real SHA-256 hex checksum for the PKG at the
"installer_url" so the downloader verifies the file. Fetch the installer from
the URL (https://download.dialpad.com/osx/arm64/dialpad.pkg), compute its
SHA-256 digest, and update the "sha256" field in
ee/maintained-apps/outputs/dialpad/darwin.json with the lowercase hex checksum
string (ensuring it matches the actual PKG you uploaded); after updating, re-run
the manifest validation/installer fetch to confirm the checksum matches.
| "4f288bf9": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# extract contents\nunzip \"$INSTALLER_PATH\" -d \"$TMPDIR\"\n# install pkg files\nquit_and_track_application 'com.electron.dialpad'\nsudo installer -pkg \"$TMPDIR/dialpad.pkg\" -target /\nrelaunch_application 'com.electron.dialpad'\n", | ||
| "b293e759": "#!/bin/sh\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/<key>volume<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/<key>install-location<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_pkg_files 'com.dialpad.Dialpad.pkg'\nforget_pkg 'com.dialpad.Dialpad.pkg'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Dialpad'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.electron.dialpad*'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.electron.dialpad'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.electron.dialpad.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.electron.dialpad.savedState'\n" |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python - <<'PY'
import json, re
path = "ee/maintained-apps/outputs/dialpad/darwin.json"
patterns = {
r"\[\[": "[[ ]] test",
r"\blocal\b": "local keyword",
r"<<<": "here-string",
r"\$EUID\b": "$EUID",
r"\$\{[^}]+:[0-9]+\}": "substring expansion",
}
with open(path) as f:
data = json.load(f)
for ref, script in data["refs"].items():
print(f"== {ref} ==")
print("shebang:", script.splitlines()[0] if script else "<empty>")
for pattern, label in patterns.items():
if re.search(pattern, script):
print(" bashism:", label)
PYRepository: fleetdm/fleet
Length of output: 290
Fix shebang to match actual shell implementation.
Both scripts declare #!/bin/sh but use bash-only features: [[ ... ]], local, <<<, $EUID, and ${target_file:1}. This causes install/uninstall to fail on systems where /bin/sh is not bash. Change the shebang to #!/bin/bash or rewrite both scripts to use only POSIX shell.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@ee/maintained-apps/outputs/dialpad/darwin.json` around lines 19 - 20, The
scripts declare #!/bin/sh but use Bash-only features (e.g. [[ ]], local, <<<,
$EUID, parameter slicing) causing failures; update each script's shebang to
#!/bin/bash or refactor the Bash-specific constructs to POSIX-compliant
equivalents. Locate the Bash usages in functions like quit_and_track_application
and relaunch_application (uses [[ ]], local, $EUID), and in
expand_pkgid_and_map, remove_receipt_files, trash (uses <<<, local,
${target_file:1}, [[ ]]) and either change the top-line to #!/bin/bash or
systematically replace Bashisms (use POSIX test [, avoid local, replace
here-strings, use printf/awk for slicing, etc.) so the installer and uninstaller
run under /bin/sh-compatible shells.
Script Diff Resultsee/maintained-apps/outputs/arc/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/dialpad/darwin.json=== Install // 4f288bf9 -> d3e137fc ===
--- /tmp/old.4Dk8Wk 2026-05-01 02:05:12.462097844 +0000
+++ /tmp/new.xXWpk2 2026-05-01 02:05:12.462097844 +0000
@@ -94,8 +94,6 @@
}
-# extract contents
-unzip "$INSTALLER_PATH" -d "$TMPDIR"
# install pkg files
quit_and_track_application 'com.electron.dialpad'
sudo installer -pkg "$TMPDIR/dialpad.pkg" -target /
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/expressvpn/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/libreoffice/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/loom/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/microsoft-edge/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===ee/maintained-apps/outputs/zen/darwin.json=== Install Script (no changes) ===
=== Uninstall Script (no changes) === |
There was a problem hiding this comment.
♻️ Duplicate comments (1)
ee/maintained-apps/outputs/dialpad/darwin.json (1)
20-20:⚠️ Potential issue | 🟡 MinorUse
$INSTALLER_PATHdirectly for more robust installer handling.The script assumes the downloaded file is named
dialpad.pkg, which is fragile. Thezoominstaller in the same repository uses the more robust pattern of passing$INSTALLER_PATHdirectly to the installer command, eliminating the filename assumption.🔧 Proposed fix
-sudo installer -pkg "$TMPDIR/dialpad.pkg" -target / +sudo installer -pkg "$INSTALLER_PATH" -target /The
TMPDIRvariable can also be removed as it's no longer used:-TMPDIR=$(dirname "$(realpath "$INSTALLER_PATH")")🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@ee/maintained-apps/outputs/dialpad/darwin.json` at line 20, The installer invocation is fragile because it hardcodes "$TMPDIR/dialpad.pkg"; update the script to call installer with "$INSTALLER_PATH" directly (replace the sudo installer -pkg "$TMPDIR/dialpad.pkg" -target / line with sudo installer -pkg "$INSTALLER_PATH" -target / or just installer depending on current usage) and remove the now-unused TMPDIR assignment; adjust nearby code that assumes TMPDIR if any. Target locations: the installer invocation line and the TMPDIR variable definition near the top, within the same script that defines quit_and_track_application and relaunch_application.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@ee/maintained-apps/outputs/dialpad/darwin.json`:
- Line 20: The installer invocation is fragile because it hardcodes
"$TMPDIR/dialpad.pkg"; update the script to call installer with
"$INSTALLER_PATH" directly (replace the sudo installer -pkg
"$TMPDIR/dialpad.pkg" -target / line with sudo installer -pkg "$INSTALLER_PATH"
-target / or just installer depending on current usage) and remove the
now-unused TMPDIR assignment; adjust nearby code that assumes TMPDIR if any.
Target locations: the installer invocation line and the TMPDIR variable
definition near the top, within the same script that defines
quit_and_track_application and relaunch_application.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: ba9f97e6-d49b-4efe-9c8c-fc61af15f4fe
📒 Files selected for processing (2)
ee/maintained-apps/inputs/homebrew/dialpad.jsonee/maintained-apps/outputs/dialpad/darwin.json
✅ Files skipped from review due to trivial changes (1)
- ee/maintained-apps/inputs/homebrew/dialpad.json
Automated ingestion of latest Fleet-maintained app data.
Summary by CodeRabbit
Chores
Bug Fixes