Yet another Jamf Pro Extension Attribute which returns the installed version of Homebrew

Background
Homebrew is The Missing Package Manager for macOS (or Linux) and knowing the version installed on your Mac fleet can prove critical.
Earlier this week, we observed our previous Jamf Pro Extension Attribute for Homebrew returning unexpected results:
<result>usage:</result>
After a little digging, it was discovered that something had changed with brew -v
from version 4.3.10
…
% brew --version Homebrew 4.3.10 % brew -v Homebrew 4.3.10
… when compared with version 4.3.11
:
% brew --version Homebrew 4.3.11 % brew -v Example usage: brew search TEXT|/REGEX/ brew info [FORMULA|CASK...] brew install FORMULA|CASK... brew update brew upgrade [FORMULA|CASK...] brew uninstall FORMULA|CASK... brew list [FORMULA|CASK...] Troubleshooting: brew config brew doctor brew install --verbose --debug FORMULA|CASK Contributing: brew create URL [--no-fetch] brew edit [FORMULA|CASK...] Further help: brew commands brew help [COMMAND] man brew https://docs.brew.sh
Gratefully, #17903 has already been merged and confirmed resolved in 4.3.13
❯ brew --version Homebrew 4.3.13 ❯ brew -v Homebrew 4.3.13
Extension Attribute
The following leverages brew --version
as the last logged-in user.
#!/bin/zsh --no-rcs # shellcheck shell=bash #################################################################### # ABOUT # # # # A script to collect the version of Homebrew currently installed. # # If Homebrew is not installed, "Not Installed" will returned. # # # #################################################################### # # # HISTORY # # # # Version 0.0.1, 30-Jul-2024, Dan K. Snelson (@dan-snelson) # # - Original version (inspired by M. Lamont) # # # # Version 0.0.2, 30-Jul-2024, Dan K. Snelson (@dan-snelson) # # - Updated to only return the "Homebrew " line (thanks, J.D.N.) # # # #################################################################### # Set default for RESULT RESULT="Not Installed" # Last Logged-in User lastUser=$( defaults read /Library/Preferences/com.apple.loginwindow.plist lastUserName ) # Determine Homebrew path, based on Mac's Architecture if [[ "$(arch)" == "arm64" ]]; then homebrewPath="/opt/homebrew/bin/brew" else homebrewPath="/usr/local/bin/brew" fi # Determine Homebrew version if [[ -e "${homebrewPath}" ]]; then RESULT=$( su - "${lastUser}" -c "${homebrewPath} --version" | grep "Homebrew " | awk '{ print $2 }' ) fi # Output RESULT /bin/echo "<result>$RESULT</result>"
(We added grep "Homebrew "
once we discovered multiple creative ways users have personalized the output of brew --version
.)