aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
authorJiang Xin2013-04-09 11:01:58 +0800
committerJack Nagel2013-04-11 23:45:15 -0500
commit885292e16ecb458e31bd97c6557c15a2eeb15629 (patch)
treee4088b85138fd43cf0e76140c37699b4bafe1f60 /Library/Homebrew/cmd
parent012fe005f7e05211c5038bc4e1af86aab3875dfa (diff)
downloadhomebrew-885292e16ecb458e31bd97c6557c15a2eeb15629.tar.bz2
versions: work for tapped formulae
brew versions is hardcoded to cd to HOMEBREW_REPOSITORY before running git, and as such fails to report previous versions for any formulae from a tapped repository. Add two new private methods repository and entry_name to replace the hardcoded HOMEBREW_REPOSITORY and formula path, and brew versions work for both builtin and tapped formulae. Closes #12356. Closes #19069. Reported-by: Misty De Meo <mistydemeo@gmail.com> Suggested-by: Jack Nagel <jacknagel@gmail.com> Signed-off-by: Jiang Xin <worldhello.net@gmail.com> Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/versions.rb30
1 files changed, 23 insertions, 7 deletions
diff --git a/Library/Homebrew/cmd/versions.rb b/Library/Homebrew/cmd/versions.rb
index f6aaea77c..205f4467e 100644
--- a/Library/Homebrew/cmd/versions.rb
+++ b/Library/Homebrew/cmd/versions.rb
@@ -37,23 +37,39 @@ class Formula
end
def pretty_relative_path
- if Pathname.pwd == HOMEBREW_REPOSITORY
- "Library/Formula/#{name}.rb"
+ if Pathname.pwd == repository
+ entry_name
else
- "#{HOMEBREW_REPOSITORY}/Library/Formula/#{name}.rb"
+ repository/"#{entry_name}"
end
end
private
+ def repository
+ @repository ||= begin
+ if path.realpath.to_s =~ %r{#{HOMEBREW_REPOSITORY}/Library/Taps/(\w+)-(\w+)}
+ HOMEBREW_REPOSITORY/"Library/Taps/#$1-#$2"
+ else
+ HOMEBREW_REPOSITORY
+ end
+ end
+ end
+
+ def entry_name
+ @entry_name ||= begin
+ repository == HOMEBREW_REPOSITORY ? "Library/Formula/#{name}.rb" : "#{name}.rb"
+ end
+ end
+
def rev_list
- HOMEBREW_REPOSITORY.cd do
- `git rev-list --abbrev-commit HEAD -- Library/Formula/#{name}.rb`.split
+ repository.cd do
+ `git rev-list --abbrev-commit HEAD -- #{entry_name}`.split
end
end
def text_from_sha sha
- HOMEBREW_REPOSITORY.cd do
- `git cat-file blob #{sha}:Library/Formula/#{name}.rb`
+ repository.cd do
+ `git cat-file blob #{sha}:#{entry_name}`
end
end