diff options
Diffstat (limited to 'Library/Homebrew/cmd/install.rb')
| -rw-r--r-- | Library/Homebrew/cmd/install.rb | 87 | 
1 files changed, 87 insertions, 0 deletions
| diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb new file mode 100644 index 000000000..ed5fb6777 --- /dev/null +++ b/Library/Homebrew/cmd/install.rb @@ -0,0 +1,87 @@ +require 'formula_installer' +require 'hardware' + +module Homebrew extend self +  def install +    brew_install +  end +end + +def brew_install +  ############################################################ sanity checks +  case Hardware.cpu_type when :ppc, :dunno +    abort "Sorry, Homebrew does not support your computer's CPU architecture.\n"+ +          "For PPC support, see: http://github.com/sceaga/homebrew/tree/powerpc" +  end + +  raise "Cannot write to #{HOMEBREW_CELLAR}" if HOMEBREW_CELLAR.exist? and not HOMEBREW_CELLAR.writable? +  raise "Cannot write to #{HOMEBREW_PREFIX}" unless HOMEBREW_PREFIX.writable? + +  ################################################################# warnings +  begin +    if MACOS_VERSION >= 10.6 +      opoo "You should upgrade to Xcode 3.2.3" if llvm_build < RECOMMENDED_LLVM +    else +      opoo "You should upgrade to Xcode 3.1.4" if (gcc_40_build < RECOMMENDED_GCC_40) or (gcc_42_build < RECOMMENDED_GCC_42) +    end +  rescue +    # the reason we don't abort is some formula don't require Xcode +    # TODO allow formula to declare themselves as "not needing Xcode" +    opoo "Xcode is not installed! Builds may fail!" +  end + +  if macports_or_fink_installed? +    opoo "It appears you have MacPorts or Fink installed." +    puts "Software installed with MacPorts and Fink are known to cause problems." +    puts "If you experience issues try uninstalling these tools." +  end + +  ################################################################# install! +  installer = FormulaInstaller.new +  installer.install_deps = !ARGV.include?('--ignore-dependencies') + +  ARGV.formulae.each do |f| +    if not f.installed? or ARGV.force? +      installer.install f +    else +      puts "Formula already installed: #{f.prefix}" +    end +  end +end + +def check_for_blacklisted_formula names +  return if ARGV.force? + +  names.each do |name| +    case name +    when 'tex', 'tex-live', 'texlive' then abort <<-EOS.undent +      Installing TeX from source is weird and gross, requires a lot of patches, +      and only builds 32-bit (and thus can't use Homebrew deps on Snow Leopard.) + +      We recommend using a MacTeX distribution: +        http://www.tug.org/mactex/ +    EOS + +    when 'mercurial', 'hg' then abort <<-EOS.undent +      Mercurial can be install thusly: +        brew install pip && pip install mercurial +    EOS + +    when 'npm' then abort <<-EOS.undent +      npm can be installed thusly by following the instructions at +        http://npmjs.org/ + +      To do it in one line, use this command: +        curl http://npmjs.org/install.sh | sudo sh +    EOS + +    when 'setuptools' then abort <<-EOS.undent +      When working with a Homebrew-built Python, distribute is preferred +      over setuptools, and can be used as the prerequisite for pip. + +      Install distribute using: +        brew install distribute +    EOS +    end +  end +end | 
