Extract some boilerplate into an each_tap method

This commit is contained in:
Jack Nagel 2014-04-25 11:25:38 -05:00
parent 99c275d03b
commit b0cd6b0376
2 changed files with 28 additions and 26 deletions

View File

@ -2,13 +2,9 @@ module Homebrew extend self
def tap def tap
if ARGV.empty? if ARGV.empty?
tapd = HOMEBREW_LIBRARY/"Taps" each_tap do |user, repo|
tapd.children.each do |user| puts "#{user.basename}/#{repo.basename.sub("homebrew-", "")}" if (repo/".git").directory?
next unless user.directory? end
user.children.each do |repo|
puts "#{user.basename}/#{repo.basename.sub("homebrew-", "")}" if (repo/".git").directory?
end
end if tapd.directory?
elsif ARGV.first == "--repair" elsif ARGV.first == "--repair"
repair_taps repair_taps
else else
@ -88,13 +84,10 @@ module Homebrew extend self
count = 0 count = 0
# check symlinks are all set in each tap # check symlinks are all set in each tap
HOMEBREW_REPOSITORY.join("Library/Taps").children.each do |user| each_tap do |user, repo|
next unless user.directory? files = []
user.children.each do |repo| repo.find_formula { |file| files << user.basename.join(repo.basename, file) }
files = [] count += link_tap_formula(files)
repo.find_formula{ |file| files << user.basename.join(repo.basename, file) } if repo.directory?
count += link_tap_formula(files)
end
end end
puts "Tapped #{count} formula" puts "Tapped #{count} formula"
@ -102,6 +95,18 @@ module Homebrew extend self
private 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 def tap_args
ARGV.first =~ %r{^([\w_-]+)/(homebrew-)?([\w_-]+)$} ARGV.first =~ %r{^([\w_-]+)/(homebrew-)?([\w_-]+)$}
raise "Invalid tap name" unless $1 && $3 raise "Invalid tap name" unless $1 && $3

View File

@ -38,19 +38,16 @@ module Homebrew extend self
# this procedure will be removed in the future if it seems unnecessasry # this procedure will be removed in the future if it seems unnecessasry
rename_taps_dir_if_necessary rename_taps_dir_if_necessary
Dir["Library/Taps/*/"].each do |user| each_tap do |user, repo|
Dir["#{user}*/"].each do |repo| repo.cd do
cd repo do begin
begin updater = Updater.new
updater = Updater.new updater.pull!
updater.pull! report.merge!(updater.report) do |key, oldval, newval|
report.merge!(updater.report) do |key, oldval, newval| oldval.concat(newval)
oldval.concat(newval)
end
rescue
repo =~ %r{^Library/Taps/([\w_-]+)/(homebrew-)?([\w_-]+)}
onoe "Failed to update tap: #$1/#$3"
end end
rescue
onoe "Failed to update tap: #{user.basename}/#{repo.basename.sub("homebrew-", "")}"
end end
end end
end end