From abc1d14807fc8e5f46373e0e81bcb4fc754e14cb Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 10 Jan 2024 17:21:57 +0000 Subject: [PATCH] Improve working directory error messages - Check for directory existing and directory being readable separately and print appropriate messages for each - Make error messages more consistent --- Library/Homebrew/brew.sh | 8 ++++++-- bin/brew | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index 9776e87177409..d292b0e3d2144 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -419,9 +419,13 @@ fi # Many Pathname operations use getwd when they shouldn't, and then throw # odd exceptions. Reduce our support burden by showing a user-friendly error. -if [[ ! -d "$(pwd)" ]] +if ! [[ -d "$(pwd)" ]] then - odie "The current working directory doesn't exist, cannot proceed." + odie "The current working directory must exist to run brew." +fi +if ! [[ -r "$(pwd)" ]] +then + odie "The current working directory must be readable to run brew." fi ##### diff --git a/bin/brew b/bin/brew index 635926240c861..87df3de94dc07 100755 --- a/bin/brew +++ b/bin/brew @@ -12,10 +12,20 @@ fi set +o posix # as we are using bash now -# Fail fast with concise message when cwd does not exist +# Fail fast with concise messages when PWD has issues +if [[ -z "${PWD-}" ]] +then + echo "Error: \$PWD must be set to run brew." >&2 + exit 1 +fi if ! [[ -d "${PWD}" ]] then - echo "Error: The current working directory doesn't exist, cannot proceed." >&2 + echo "Error: The current working directory must exist to run brew." >&2 + exit 1 +fi +if ! [[ -r "${PWD}" ]] +then + echo "Error: The current working directory must be readable to run brew." >&2 exit 1 fi