From a9b9c5ade798ca8378f9e8bf3d82f6f2b01d8312 Mon Sep 17 00:00:00 2001 From: Xu Cheng Date: Thu, 30 Jul 2015 16:51:00 +0800 Subject: [PATCH] Tap: allow enumerate non-git taps Also add a `Tap#git?` method to indicate whether the tap is a git repository. Closes Homebrew/homebrew#42264. Signed-off-by: Xu Cheng --- Library/Homebrew/cmd/update.rb | 2 +- Library/Homebrew/tap.rb | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index ba03d34a4a..189a911db1 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -27,7 +27,7 @@ module Homebrew # this procedure will be removed in the future if it seems unnecessasry rename_taps_dir_if_necessary - Tap.each do |tap| + Tap.select(&:git?).each do |tap| tap.path.cd do updater = Updater.new(tap.path) diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index 6dc83473b3..27777e4312 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -37,7 +37,7 @@ class Tap # e.g. `https://github.com/user/homebrew-repo` def remote @remote ||= if installed? - if (@path/".git").exist? + if git? @path.cd do Utils.popen_read("git", "config", "--get", "remote.origin.url").chomp end @@ -49,6 +49,11 @@ class Tap end end + # True if this {Tap} is a git repository. + def git? + (@path/".git").exist? + end + def to_s name end @@ -117,9 +122,7 @@ class Tap TAP_DIRECTORY.subdirs.each do |user| user.subdirs.each do |repo| - if (repo/".git").directory? - yield new(user.basename.to_s, repo.basename.to_s.sub("homebrew-", "")) - end + yield new(user.basename.to_s, repo.basename.to_s.sub("homebrew-", "")) end end end