aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/info.rb37
1 files changed, 23 insertions, 14 deletions
diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb
index 0c6b3829e..bb5f1f991 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_fork
+ if system "/usr/bin/which -s git"
+ if `git remote -v` =~ %r{origin\s+(https?://|git@)github.com[:/](.+)/homebrew}
+ $2
+ end
+ end
+ end
+
def github_info name
- formula_name = Formula.path(name).basename
- user = 'mxcl'
- branch = 'master'
+ path = Formula.path(name).realpath
- 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 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
- "http://github.com/#{user}/homebrew/commits/#{branch}/Library/Formula/#{formula_name}"
+ "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