diff options
| author | Xu Cheng | 2015-08-13 20:35:22 +0800 |
|---|---|---|
| committer | Xu Cheng | 2015-08-14 15:52:56 +0800 |
| commit | 203cecb463a3f7d94a67251c44c5d28ab4341248 (patch) | |
| tree | cdd16c0c49b23e2bf35602dfdabecdcb824d6d5d | |
| parent | c7a484824c9fa4628cf15b4afa3ad7d38ca3f9a7 (diff) | |
| download | brew-203cecb463a3f7d94a67251c44c5d28ab4341248.tar.bz2 | |
add Formula.racks
Also exclude symlink when enumerating installed racks.
| -rw-r--r-- | Library/Homebrew/cmd/cleanup.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/info.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/linkapps.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/list.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/formula.rb | 23 |
5 files changed, 19 insertions, 15 deletions
diff --git a/Library/Homebrew/cmd/cleanup.rb b/Library/Homebrew/cmd/cleanup.rb index 6c3b9ffbf..9a211dcbc 100644 --- a/Library/Homebrew/cmd/cleanup.rb +++ b/Library/Homebrew/cmd/cleanup.rb @@ -31,8 +31,7 @@ module Homebrew end def cleanup_cellar - return unless HOMEBREW_CELLAR.directory? - HOMEBREW_CELLAR.subdirs.each do |rack| + Formula.racks.each do |rack| begin cleanup_formula Formulary.from_rack(rack) rescue FormulaUnavailableError, TapFormulaAmbiguityError diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 854344bd4..21c04ed46 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -22,7 +22,7 @@ module Homebrew def print_info if ARGV.named.empty? if HOMEBREW_CELLAR.exist? - count = HOMEBREW_CELLAR.subdirs.length + count = Formula.racks.length puts "#{count} keg#{plural(count)}, #{HOMEBREW_CELLAR.abv}" end else diff --git a/Library/Homebrew/cmd/linkapps.rb b/Library/Homebrew/cmd/linkapps.rb index f484d9850..9a58bd37a 100644 --- a/Library/Homebrew/cmd/linkapps.rb +++ b/Library/Homebrew/cmd/linkapps.rb @@ -1,5 +1,6 @@ # Links any Applications (.app) found in installed prefixes to /Applications require "keg" +require "formula" module Homebrew def linkapps @@ -12,8 +13,7 @@ module Homebrew end if ARGV.named.empty? - racks = HOMEBREW_CELLAR.subdirs - kegs = racks.map do |rack| + kegs = Formula.racks.map do |rack| keg = rack.subdirs.map { |d| Keg.new(d) } next if keg.empty? keg.detect(&:linked?) || keg.max { |a, b| a.version <=> b.version } diff --git a/Library/Homebrew/cmd/list.rb b/Library/Homebrew/cmd/list.rb index cdb0e6859..b35b0e389 100644 --- a/Library/Homebrew/cmd/list.rb +++ b/Library/Homebrew/cmd/list.rb @@ -78,7 +78,7 @@ module Homebrew def filtered_list names = if ARGV.named.empty? - HOMEBREW_CELLAR.subdirs + Formula.racks else ARGV.named.map { |n| HOMEBREW_CELLAR+n }.select(&:exist?) end diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 7aa44c44f..c457dbc02 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -809,20 +809,25 @@ class Formula end end - # An array of all installed {Formula} - def self.installed - @installed ||= if HOMEBREW_CELLAR.directory? - HOMEBREW_CELLAR.subdirs.map do |rack| - begin - Formulary.from_rack(rack) - rescue FormulaUnavailableError, TapFormulaAmbiguityError - end - end.compact + # An array of all racks currently installed. + def self.racks + @racks ||= if HOMEBREW_CELLAR.directory? + HOMEBREW_CELLAR.subdirs.reject(&:symlink?) else [] end end + # An array of all installed {Formula} + def self.installed + @installed ||= racks.map do |rack| + begin + Formulary.from_rack(rack) + rescue FormulaUnavailableError, TapFormulaAmbiguityError + end + end.compact + end + def self.aliases Dir["#{HOMEBREW_LIBRARY}/Aliases/*"].map { |f| File.basename f }.sort end |
