diff --git a/install.sh b/install.sh index 71ca08bd..8fef976a 100755 --- a/install.sh +++ b/install.sh @@ -217,6 +217,18 @@ REQUIRED_GIT_VERSION=2.7.0 # HOMEBREW_MINIMUM_GIT_VERSION in brew.sh in Homebr export HOMEBREW_NO_ANALYTICS_THIS_RUN=1 export HOMEBREW_NO_ANALYTICS_MESSAGE_OUTPUT=1 +macos_sudoless_mode() { + if [[ -n "${MACOS_SUDOLESS_SATISFIED-}" ]] + then + return "${MACOS_SUDOLESS_SATISFIED}" + fi + + [[ -d "${HOMEBREW_PREFIX}" ]] && "${CHMOD[@]}" -R "ug+w" "${HOMEBREW_PREFIX}" + MACOS_SUDOLESS_SATISFIED=$? + + return "${MACOS_SUDOLESS_SATISFIED}" +} + unset HAVE_SUDO_ACCESS # unset this from the environment have_sudo_access() { @@ -225,6 +237,11 @@ have_sudo_access() { return 1 fi + if [[ -n "${HOMEBREW_ON_MACOS-}" ]] && macos_sudoless_mode + then + return 1 + fi + local -a SUDO=("/usr/bin/sudo") if [[ -n "${SUDO_ASKPASS-}" ]] then @@ -247,7 +264,19 @@ have_sudo_access() { if [[ -n "${HOMEBREW_ON_MACOS-}" ]] && [[ "${HAVE_SUDO_ACCESS}" -ne 0 ]] then - abort "Need sudo access on macOS (e.g. the user ${USER} needs to be an Administrator)!" + abort "$( + cat <