diff options
| author | Jiang Xin | 2013-04-09 11:01:58 +0800 |
|---|---|---|
| committer | Jack Nagel | 2013-04-11 23:45:15 -0500 |
| commit | 885292e16ecb458e31bd97c6557c15a2eeb15629 (patch) | |
| tree | e4088b85138fd43cf0e76140c37699b4bafe1f60 /Library/Homebrew/cmd | |
| parent | 012fe005f7e05211c5038bc4e1af86aab3875dfa (diff) | |
| download | homebrew-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.rb | 30 |
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 |
