From ceb6f4ae503c1156e80ccc3f4d1e1518315c1d63 Mon Sep 17 00:00:00 2001 From: Neved4 <63655535+Neved4@users.noreply.github.com> Date: Mon, 21 Oct 2024 13:36:52 +0200 Subject: [PATCH] Run `brew` as regular user in place of root --- include/functions | 17 +++++++++++++++++ include/tests_ports_packages | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/functions b/include/functions index df27db8b7..dd1f7abb5 100644 --- a/include/functions +++ b/include/functions @@ -91,6 +91,7 @@ # ReportManual Log manual actions to report file # ReportSuggestion Add a suggestion to report file # ReportWarning Add a warning and priority to report file +# RunBrewCmd Run Homebrew commands as a normal user instead of root # SafeFile Security tests to perform on a file before using it # SafePerms Check if a file has safe permissions # SafeInput Test provided string to see if it contains unwanted characters @@ -3036,6 +3037,22 @@ } + ################################################################################ + # Name : RunBrewCmd() + # Description : Run Homebrew commands as a normal user instead of root + # + # Parameters : $@ = Homebrew command arguments + # Returns : None (executes the command as the appropriate user) + ################################################################################ + + RunBrewCmd() { + case "$(id -u)" in + 0) sudo -u "$SUDO_USER" brew "$@" ;; + *) brew "$@" + esac + } + + ################################################################################ # Name : SafeInput() # Description : Test provided string to see if it contains unwanted characters diff --git a/include/tests_ports_packages b/include/tests_ports_packages index 35de8cd53..c8ec4b2e8 100644 --- a/include/tests_ports_packages +++ b/include/tests_ports_packages @@ -127,7 +127,7 @@ LogText "Test: Querying brew to get package list" Display --indent 4 --text "- Querying brew for installed packages" LogText "Output:"; LogText "-----" - GPACKAGES=$(brew list --versions) + GPACKAGES=$(RunBrewCmd list --versions) while IFS= read -r PKG; do PACKAGE_NAME=$(echo ${PKG} | ${CUTBINARY} -d ' ' -f1) PACKAGE_VERSION=$(echo ${PKG} | ${CUTBINARY} -d ' ' -f2) @@ -183,7 +183,7 @@ EOF PACKAGE_VERSION=$(defaults read "$CS/Contents/Info" CFBundleShortVersionString 2>/dev/null || echo "N/A") LogText "Found CoreServices: ${PACKAGE_NAME} (version: ${PACKAGE_VERSION})" INSTALLED_PACKAGES="${INSTALLED_PACKAGES}|${PACKAGE_NAME},${PACKAGE_VERSION}" - done + done fi # #################################################################################