diff options
| author | Max Howell | 2009-09-10 14:11:04 +0100 |
|---|---|---|
| committer | Max Howell | 2009-09-10 19:23:03 +0100 |
| commit | fcd62ce1eb8ac4ed775515f7e877946a62508d65 (patch) | |
| tree | 804513c087ec8fa6742dfcbd7f386b1c5dfe4b38 | |
| parent | d366b28923ed31aafe914a3f27873b2b7605e903 (diff) | |
| download | homebrew-fcd62ce1eb8ac4ed775515f7e877946a62508d65.tar.bz2 | |
Don't install dependencies that are already installed
| -rw-r--r-- | Library/Homebrew/brew.h.rb | 3 | ||||
| -rwxr-xr-x | bin/brew | 31 |
2 files changed, 20 insertions, 14 deletions
diff --git a/Library/Homebrew/brew.h.rb b/Library/Homebrew/brew.h.rb index 496e7afc0..de5048cc3 100644 --- a/Library/Homebrew/brew.h.rb +++ b/Library/Homebrew/brew.h.rb @@ -155,7 +155,7 @@ def expand_deps fae f.deps.each do |name| f = Formula.factory name deps << expand_deps(f) if f.deps # hideous inefficient - deps << f + deps << f unless f.installed? end when Hash # TODO implement optional and recommended @@ -166,6 +166,7 @@ def expand_deps fae end deps << f end + # TODO much more efficient to use a set and not recurse stuff already done return deps.flatten.uniq end @@ -91,23 +91,28 @@ begin end end - unless system "which #{ENV['CC'] or 'cc'} &> /dev/null" and $?.success? - raise "We cannot find a c compiler, have you installed the latest Xcode?" - end - - fae = ARGV.formulae.reject do |f| - if f.installed? and not ARGV.force? - message = "Formula already installed: #{f.prefix}" - if ARGV.formulae.count > 1 - opoo message - else - puts message # if only one is being installed a warning looks severe + unless ARGV.force? + unless system "which #{ENV['CC'] or 'cc'} &> /dev/null" and $?.success? + raise "We cannot find a c compiler, have you installed the latest Xcode?" + end + fae = ARGV.formulae.reject do |f| + if f.installed? + message = "Formula already installed: #{f.prefix}" + if ARGV.formulae.count > 1 + opoo message + else + puts message # if only one is being installed a warning looks severe + end + true end - true end + exit 0 if fae.empty? + else + fae=ARGV.formulae end - fae=expand_deps ARGV.formulae + # the resulting order will be optimal for super-deps and deps + fae=expand_deps fae require 'beer_events' |
