Set MACOS_VERSION as 0 on non-OSX platforms.

This commit is contained in:
Mike McQuaid 2012-03-16 15:14:20 +13:00
parent e33937a1e3
commit 23b84ef732
8 changed files with 40 additions and 26 deletions

View File

@ -24,7 +24,7 @@ test "$1" = '-l' && {
exit 0 exit 0
} }
/usr/bin/which -s ronn || die "You need to \"gem install ronn\" and put it in your path." /usr/bin/which ronn &>/dev/null || die "You need to \"gem install ronn\" and put it in your path."
test "$1" = '--server' || \ test "$1" = '--server' || \
test "$1" = '-s' && { test "$1" = '-s' && {

View File

@ -624,7 +624,7 @@ def check_for_multiple_volumes
end end
def check_for_git def check_for_git
unless system "/usr/bin/which -s git" then <<-EOS.undent unless which_s "git" then <<-EOS.undent
Git could not be found in your PATH. Git could not be found in your PATH.
Homebrew uses Git for several internal functions, and some formulae use Git Homebrew uses Git for several internal functions, and some formulae use Git
checkouts instead of stable tarballs. You may want to install Git: checkouts instead of stable tarballs. You may want to install Git:
@ -634,7 +634,7 @@ def check_for_git
end end
def check_git_newline_settings def check_git_newline_settings
return unless system "/usr/bin/which -s git" return unless which_s "git"
autocrlf = `git config --get core.autocrlf`.chomp autocrlf = `git config --get core.autocrlf`.chomp
safecrlf = `git config --get core.safecrlf`.chomp safecrlf = `git config --get core.safecrlf`.chomp
@ -765,7 +765,7 @@ def check_missing_deps
end end
def check_git_status def check_git_status
return unless system "/usr/bin/which -s git" return unless which_s "git"
HOMEBREW_REPOSITORY.cd do HOMEBREW_REPOSITORY.cd do
unless `git status -s -- Library/Homebrew/ 2>/dev/null`.chomp.empty? then <<-EOS.undent unless `git status -s -- Library/Homebrew/ 2>/dev/null`.chomp.empty? then <<-EOS.undent
You have uncommitted modifications to Homebrew's core. You have uncommitted modifications to Homebrew's core.
@ -794,7 +794,7 @@ end
def check_git_version def check_git_version
# see https://github.com/blog/642-smart-http-support # see https://github.com/blog/642-smart-http-support
return unless system "/usr/bin/which -s git" return unless which_s "git"
`git --version`.chomp =~ /git version (\d)\.(\d)\.(\d)/ `git --version`.chomp =~ /git version (\d)\.(\d)\.(\d)/
if $2.to_i < 6 or $2.to_i == 6 and $3.to_i < 6 then <<-EOS.undent if $2.to_i < 6 or $2.to_i == 6 and $3.to_i < 6 then <<-EOS.undent
@ -806,7 +806,7 @@ def check_git_version
end end
def check_for_enthought_python def check_for_enthought_python
if system "/usr/bin/which -s enpkg" then <<-EOS.undent if which_s "enpkg" then <<-EOS.undent
Enthought Python was found in your PATH. Enthought Python was found in your PATH.
This can cause build problems, as this software installs its own This can cause build problems, as this software installs its own
copies of iconv and libxml2 into directories that are picked up by copies of iconv and libxml2 into directories that are picked up by
@ -816,7 +816,7 @@ def check_for_enthought_python
end end
def check_for_bad_python_symlink def check_for_bad_python_symlink
return unless system "/usr/bin/which -s python" return unless which_s "python"
# Indeed Python --version outputs to stderr (WTF?) # Indeed Python --version outputs to stderr (WTF?)
`python --version 2>&1` =~ /Python (\d+)\./ `python --version 2>&1` =~ /Python (\d+)\./
unless $1 == "2" then <<-EOS.undent unless $1 == "2" then <<-EOS.undent

View File

@ -4,7 +4,7 @@ require 'cmd/untap'
module Homebrew extend self module Homebrew extend self
def update def update
abort "Please `brew install git' first." unless system "/usr/bin/which -s git" abort "Please `brew install git' first." unless which_s "git"
# ensure GIT_CONFIG is unset as we need to operate on .git/config # ensure GIT_CONFIG is unset as we need to operate on .git/config
ENV.delete('GIT_CONFIG') ENV.delete('GIT_CONFIG')

View File

@ -2,7 +2,7 @@ require 'formula'
module Homebrew extend self module Homebrew extend self
def versions def versions
raise "Please `brew install git' first" unless system "/usr/bin/which -s git" raise "Please `brew install git` first" unless which_s "git"
raise "Please `brew update' first" unless (HOMEBREW_REPOSITORY/".git").directory? raise "Please `brew update' first" unless (HOMEBREW_REPOSITORY/".git").directory?
raise FormulaUnspecifiedError if ARGV.named.empty? raise FormulaUnspecifiedError if ARGV.named.empty?

View File

@ -90,7 +90,7 @@ class CurlDownloadStrategy < AbstractDownloadStrategy
safe_system '/usr/bin/tar', 'xf', @tarball_path safe_system '/usr/bin/tar', 'xf', @tarball_path
chdir chdir
when /^\xFD7zXZ\x00/ # xz compressed when /^\xFD7zXZ\x00/ # xz compressed
raise "You must install XZutils: brew install xz" unless system "/usr/bin/which -s xz" raise "You must install XZutils: brew install xz" unless which_s "xz"
safe_system "xz -dc \"#{@tarball_path}\" | /usr/bin/tar xf -" safe_system "xz -dc \"#{@tarball_path}\" | /usr/bin/tar xf -"
chdir chdir
when '____pkg' when '____pkg'
@ -326,7 +326,7 @@ class GitDownloadStrategy < AbstractDownloadStrategy
end end
def fetch def fetch
raise "You must install Git: brew install git" unless system "/usr/bin/which -s git" raise "You must install Git: brew install git" unless which_s "git"
ohai "Cloning #{@url}" ohai "Cloning #{@url}"
@ -447,7 +447,7 @@ class MercurialDownloadStrategy < AbstractDownloadStrategy
def cached_location; @clone; end def cached_location; @clone; end
def fetch def fetch
raise "You must install Mercurial: brew install mercurial" unless system "/usr/bin/which -s hg" raise "You must install Mercurial: brew install mercurial" unless which_s "hg"
ohai "Cloning #{@url}" ohai "Cloning #{@url}"
@ -488,8 +488,7 @@ class BazaarDownloadStrategy < AbstractDownloadStrategy
def cached_location; @clone; end def cached_location; @clone; end
def fetch def fetch
raise "You must install bazaar first" \ raise "You must install bazaar first" unless which_s "bzr"
unless system "/usr/bin/which -s bzr"
ohai "Cloning #{@url}" ohai "Cloning #{@url}"
unless @clone.exist? unless @clone.exist?
@ -532,8 +531,7 @@ class FossilDownloadStrategy < AbstractDownloadStrategy
def cached_location; @clone; end def cached_location; @clone; end
def fetch def fetch
raise "You must install fossil first" \ raise "You must install fossil first" unless which_s "fossil"
unless system "/usr/bin/which -s fossil"
ohai "Cloning #{@url}" ohai "Cloning #{@url}"
unless @clone.exist? unless @clone.exist?

View File

@ -61,10 +61,18 @@ end
HOMEBREW_LOGS = Pathname.new('~/Library/Logs/Homebrew/').expand_path HOMEBREW_LOGS = Pathname.new('~/Library/Logs/Homebrew/').expand_path
MACOS_FULL_VERSION = `/usr/bin/sw_vers -productVersion`.chomp if RUBY_PLATFORM =~ /darwin/
MACOS_VERSION = /(10\.\d+)(\.\d+)?/.match(MACOS_FULL_VERSION).captures.first.to_f MACOS_FULL_VERSION = `/usr/bin/sw_vers -productVersion`.chomp
MACOS_VERSION = /(10\.\d+)(\.\d+)?/.match(MACOS_FULL_VERSION).captures.first.to_f
OS_VERSION = "Mac OS X #{MACOS_FULL_VERSION}"
MACOS = true
else
MACOS_FULL_VERSION = MACOS_VERSION = 0
OS_VERSION = RUBY_PLATFORM
MACOS = false
end
HOMEBREW_USER_AGENT = "Homebrew #{HOMEBREW_VERSION} (Ruby #{RUBY_VERSION}-#{RUBY_PATCHLEVEL}; Mac OS X #{MACOS_FULL_VERSION})" HOMEBREW_USER_AGENT = "Homebrew #{HOMEBREW_VERSION} (Ruby #{RUBY_VERSION}-#{RUBY_PATCHLEVEL}; #{OS_VERSION})"
HOMEBREW_CURL_ARGS = '-qf#LA' HOMEBREW_CURL_ARGS = '-qf#LA'

View File

@ -138,7 +138,8 @@ def puts_columns items, star_items=[]
end end
end end
def which cmd def which cmd, silent=false
cmd += " 2>/dev/null" if silent
path = `/usr/bin/which #{cmd}`.chomp path = `/usr/bin/which #{cmd}`.chomp
if path.empty? if path.empty?
nil nil
@ -147,15 +148,19 @@ def which cmd
end end
end end
def which_s cmd
which cmd, true
end
def which_editor def which_editor
editor = ENV['HOMEBREW_EDITOR'] || ENV['EDITOR'] editor = ENV['HOMEBREW_EDITOR'] || ENV['EDITOR']
# If an editor wasn't set, try to pick a sane default # If an editor wasn't set, try to pick a sane default
return editor unless editor.nil? return editor unless editor.nil?
# Find Textmate # Find Textmate
return 'mate' if system "/usr/bin/which -s mate" return 'mate' if which_s "mate"
# Find # BBEdit / TextWrangler # Find # BBEdit / TextWrangler
return 'edit' if system "/usr/bin/which -s edit" return 'edit' if which_s "edit"
# Default to vim # Default to vim
return '/usr/bin/vim' return '/usr/bin/vim'
end end
@ -378,6 +383,8 @@ module MacOS extend self
def xcode_version def xcode_version
@xcode_version ||= begin @xcode_version ||= begin
return "0" unless MACOS
# this shortcut makes xcode_version work for people who don't realise you # this shortcut makes xcode_version work for people who don't realise you
# need to install the CLI tools # need to install the CLI tools
xcode43build = "/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild" xcode43build = "/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild"
@ -389,7 +396,7 @@ module MacOS extend self
# Xcode 4.3 xc* tools hang indefinately if xcode-select path is set thus # Xcode 4.3 xc* tools hang indefinately if xcode-select path is set thus
raise if `xcode-select -print-path 2>/dev/null`.chomp == "/" raise if `xcode-select -print-path 2>/dev/null`.chomp == "/"
raise unless system "/usr/bin/which -s xcodebuild" raise unless which_s "xcodebuild"
`xcodebuild -version 2>/dev/null` =~ /Xcode (\d(\.\d)*)/ `xcodebuild -version 2>/dev/null` =~ /Xcode (\d(\.\d)*)/
raise if $1.nil? or not $?.success? raise if $1.nil? or not $?.success?
$1 $1
@ -468,9 +475,10 @@ module MacOS extend self
# http://github.com/mxcl/homebrew/issues/#issue/13 # http://github.com/mxcl/homebrew/issues/#issue/13
# http://github.com/mxcl/homebrew/issues/#issue/41 # http://github.com/mxcl/homebrew/issues/#issue/41
# http://github.com/mxcl/homebrew/issues/#issue/48 # http://github.com/mxcl/homebrew/issues/#issue/48
return false unless MACOS
%w[port fink].each do |ponk| %w[port fink].each do |ponk|
path = `/usr/bin/which -s #{ponk}` path = `/usr/bin/which #{ponk} 2>/dev/null`
return ponk unless path.empty? return ponk unless path.empty?
end end

View File

@ -31,7 +31,7 @@ case HOMEBREW_PREFIX.to_s when '/', '/usr'
# it may work, but I only see pain this route and don't want to support it # it may work, but I only see pain this route and don't want to support it
abort "Cowardly refusing to continue at this prefix: #{HOMEBREW_PREFIX}" abort "Cowardly refusing to continue at this prefix: #{HOMEBREW_PREFIX}"
end end
if MACOS_VERSION < 10.5 if MACOS and MACOS_VERSION < 10.5
abort <<-EOABORT.undent abort <<-EOABORT.undent
Homebrew requires Leopard or higher. For Tiger support, see: Homebrew requires Leopard or higher. For Tiger support, see:
http://github.com/sceaga/homebrew/tree/tiger http://github.com/sceaga/homebrew/tree/tiger
@ -72,7 +72,7 @@ begin
# Add example external commands to PATH before checking. # Add example external commands to PATH before checking.
ENV['PATH'] += ":#{HOMEBREW_REPOSITORY}/Library/Contributions/cmds" ENV['PATH'] += ":#{HOMEBREW_REPOSITORY}/Library/Contributions/cmds"
if system "/usr/bin/which -s brew-#{cmd}" if which_s "brew-#{cmd}"
%w[CACHE CELLAR LIBRARY_PATH PREFIX REPOSITORY].each do |e| %w[CACHE CELLAR LIBRARY_PATH PREFIX REPOSITORY].each do |e|
ENV["HOMEBREW_#{e}"] = Object.const_get "HOMEBREW_#{e}" ENV["HOMEBREW_#{e}"] = Object.const_get "HOMEBREW_#{e}"
end end