From 6c0950999f0614d5a0b35dd0700d5928e5d95af0 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Tue, 6 Mar 2012 17:35:10 +0000 Subject: [PATCH] `brew info` understands taps Note I removed some of the code that changed the URL to be that of the github.user. Because this doesn't make any sense really. We want people to reference the commit history for whatever fork of homebrew they have checked out. So this is now what it does. --- Library/Homebrew/cmd/info.rb | 39 ++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 0c6b3829e2..bb5f1f9911 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -20,21 +20,30 @@ module Homebrew extend self end end - def github_info name - formula_name = Formula.path(name).basename - user = 'mxcl' - branch = 'master' - + def github_fork if system "/usr/bin/which -s git" - gh_user=`git config --global github.user 2>/dev/null`.chomp - /^\*\s*(.*)/.match(`git --git-dir=#{HOMEBREW_REPOSITORY}/.git branch 2>/dev/null`) - unless $1.nil? || $1.empty? || $1.chomp == 'master' || gh_user.empty? - branch = $1.chomp - user = gh_user + if `git remote -v` =~ %r{origin\s+(https?://|git@)github.com[:/](.+)/homebrew} + $2 end end + end - "http://github.com/#{user}/homebrew/commits/#{branch}/Library/Formula/#{formula_name}" + def github_info name + path = Formula.path(name).realpath + + if path.to_s =~ %r{#{HOMEBREW_REPOSITORY}/Library/Taps/(\w+)-(\w+)/(.*)} + user = $1 + repo = "homebrew-#$2" + path = $3 + else + path.parent.cd do + user = github_fork + end + repo = "homebrew" + path = "Library/Formula/#{path.basename}" + end + + "https://github.com/#{user}/#{repo}/commits/master/#{path}" end def info_formula f @@ -68,16 +77,16 @@ module Homebrew extend self puts "Not installed" end + history = github_info f.name + puts history if history + the_caveats = (f.caveats || "").strip unless the_caveats.empty? puts + ohai "Caveats" puts f.caveats - puts end - history = github_info f.name - puts history if history - rescue FormulaUnavailableError # check for DIY installation d = HOMEBREW_PREFIX+name