diff options
| author | Xu Cheng | 2016-07-17 02:07:06 +0800 |
|---|---|---|
| committer | Xu Cheng | 2016-07-17 02:07:06 +0800 |
| commit | 177d988917a7b793914bb082a908aa74cde0c999 (patch) | |
| tree | 7e797c7f3f5824e71ebc26cdb1b33d38554f7d10 /Library | |
| parent | 356018501b83364ac4f41aad26ca795c3b2fb8cb (diff) | |
| download | brew-177d988917a7b793914bb082a908aa74cde0c999.tar.bz2 | |
brew.sh: make sudo-checker cross-platform
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/brew.sh | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index dd9e54e7e..5596a51e1 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -195,19 +195,30 @@ then HOMEBREW_BASH_COMMAND="$HOMEBREW_LIBRARY/Homebrew/dev-cmd/$HOMEBREW_COMMAND.sh" fi -if [[ "$(id -u)" = "0" && "$(/usr/bin/stat -f%u "$HOMEBREW_BREW_FILE")" != "0" ]] -then +check-run-command-as-root() { case "$HOMEBREW_COMMAND" in - analytics|install|reinstall|postinstall|link|pin|update|upgrade|vendor-install|create|migrate|tap|tap-pin|switch) + analytics|create|install|link|migrate|pin|postinstall|reinstall|switch|tap|tap-pin|\ + update|upgrade|vendor-install) + ;; + *) + return + ;; + esac + + [[ "$(id -u)" = 0 ]] || return + + local brew_file_ls_info=($(ls -nd "$HOMEBREW_BREW_FILE")) + if [[ "${brew_file_ls_info[2]}" != 0 ]] + then odie <<EOS Cowardly refusing to 'sudo brew $HOMEBREW_COMMAND' You can use brew with sudo, but only if the brew executable is owned by root. However, this is both not recommended and completely unsupported so do so at your own risk. EOS - ;; - esac -fi + fi +} +check-run-command-as-root # Hide shellcheck complaint: # shellcheck source=/dev/null |
