diff --git a/Library/Homebrew/cmd/tap.rb b/Library/Homebrew/cmd/tap.rb index 2cc450563d..85028f8130 100644 --- a/Library/Homebrew/cmd/tap.rb +++ b/Library/Homebrew/cmd/tap.rb @@ -2,13 +2,9 @@ module Homebrew extend self def tap if ARGV.empty? - tapd = HOMEBREW_LIBRARY/"Taps" - tapd.children.each do |user| - next unless user.directory? - user.children.each do |repo| - puts "#{user.basename}/#{repo.basename.sub("homebrew-", "")}" if (repo/".git").directory? - end - end if tapd.directory? + each_tap do |user, repo| + puts "#{user.basename}/#{repo.basename.sub("homebrew-", "")}" if (repo/".git").directory? + end elsif ARGV.first == "--repair" repair_taps else @@ -88,13 +84,10 @@ module Homebrew extend self count = 0 # check symlinks are all set in each tap - HOMEBREW_REPOSITORY.join("Library/Taps").children.each do |user| - next unless user.directory? - user.children.each do |repo| - files = [] - repo.find_formula{ |file| files << user.basename.join(repo.basename, file) } if repo.directory? - count += link_tap_formula(files) - end + each_tap do |user, repo| + files = [] + repo.find_formula { |file| files << user.basename.join(repo.basename, file) } + count += link_tap_formula(files) end puts "Tapped #{count} formula" @@ -102,6 +95,18 @@ module Homebrew extend self private + def each_tap + taps = HOMEBREW_LIBRARY.join("Taps") + + if taps.directory? + taps.subdirs.each do |user| + user.subdirs.each do |repo| + yield user, repo + end + end + end + end + def tap_args ARGV.first =~ %r{^([\w_-]+)/(homebrew-)?([\w_-]+)$} raise "Invalid tap name" unless $1 && $3 diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index fcbffb11f7..927eca410f 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -38,19 +38,16 @@ module Homebrew extend self # this procedure will be removed in the future if it seems unnecessasry rename_taps_dir_if_necessary - Dir["Library/Taps/*/"].each do |user| - Dir["#{user}*/"].each do |repo| - cd repo do - begin - updater = Updater.new - updater.pull! - report.merge!(updater.report) do |key, oldval, newval| - oldval.concat(newval) - end - rescue - repo =~ %r{^Library/Taps/([\w_-]+)/(homebrew-)?([\w_-]+)} - onoe "Failed to update tap: #$1/#$3" + each_tap do |user, repo| + repo.cd do + begin + updater = Updater.new + updater.pull! + report.merge!(updater.report) do |key, oldval, newval| + oldval.concat(newval) end + rescue + onoe "Failed to update tap: #{user.basename}/#{repo.basename.sub("homebrew-", "")}" end end end