Be more verbose when users insist on being sudoers

If you google for "Cowardly refusing to sudo brew" you get a lot of confused users who didn't read any of the Homebrew documentation and then had a hissy-fit.
This commit is contained in:
Max Howell 2012-08-10 09:33:33 -04:00
parent f5eaef0aee
commit 45b84df1bd
3 changed files with 11 additions and 7 deletions

View File

@ -2,7 +2,7 @@ require 'formula_installer'
require 'hardware' require 'hardware'
require 'blacklist' require 'blacklist'
module Homebrew extend self module Homebrew extend self
def install def install
raise FormulaUnspecifiedError if ARGV.named.empty? raise FormulaUnspecifiedError if ARGV.named.empty?
@ -15,9 +15,7 @@ module Homebrew extend self
end unless ARGV.force? end unless ARGV.force?
if Process.uid.zero? and not File.stat(HOMEBREW_BREW_FILE).uid.zero? if Process.uid.zero? and not File.stat(HOMEBREW_BREW_FILE).uid.zero?
# note we only abort if Homebrew is *not* installed as sudo and the user raise "Cowardly refusing to `sudo brew install'\n#{SUDO_BAD_ERRMSG}"
# calls brew as root. The fix is to chown brew to root.
abort "Cowardly refusing to `sudo brew install'"
end end
install_formulae ARGV.formulae install_formulae ARGV.formulae

View File

@ -4,9 +4,7 @@ module Homebrew extend self
raise KegUnspecifiedError if ARGV.named.empty? raise KegUnspecifiedError if ARGV.named.empty?
if Process.uid.zero? and not File.stat(HOMEBREW_BREW_FILE).uid.zero? if Process.uid.zero? and not File.stat(HOMEBREW_BREW_FILE).uid.zero?
# note we only abort if Homebrew is *not* installed as sudo and the user raise "Cowardly refusing to `sudo brew link'\n#{SUDO_BAD_ERRMSG}"
# calls brew as root. The fix is to chown brew to root.
abort "Cowardly refusing to `sudo brew link'"
end end
if ARGV.force? then mode = :force if ARGV.force? then mode = :force

View File

@ -179,3 +179,11 @@ class ChecksumMismatchError < RuntimeError
super + advice.to_s super + advice.to_s
end end
end end
module Homebrew extend self
SUDO_BAD_ERRMSG = <<-EOS.undent
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
end