diff options
| author | Jack Nagel | 2012-01-06 14:35:48 -0600 |
|---|---|---|
| committer | Jack Nagel | 2012-01-06 14:51:15 -0600 |
| commit | f3f04e595d919cff81ed342ed0fd119f16a33bc0 (patch) | |
| tree | 5baf95afb9bd9cea82519547382bab7a1e56d118 /Library | |
| parent | 016a508c7a8a1456a52a32ad4330d811d1a043aa (diff) | |
| download | brew-f3f04e595d919cff81ed342ed0fd119f16a33bc0.tar.bz2 | |
versions: enable '--compact' output
This will be useful for shell tab completion when something like `brew
install <formula> --version <version>` is implemented.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Contributions/brew_bash_completion.sh | 5 | ||||
| -rw-r--r-- | Library/Contributions/manpages/brew.1.md | 5 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/versions.rb | 28 |
3 files changed, 23 insertions, 15 deletions
diff --git a/Library/Contributions/brew_bash_completion.sh b/Library/Contributions/brew_bash_completion.sh index 355d6443f..8299ef9a9 100644 --- a/Library/Contributions/brew_bash_completion.sh +++ b/Library/Contributions/brew_bash_completion.sh @@ -197,6 +197,11 @@ _brew_to_completion() COMPREPLY=( $(compgen -W "$opts" -- ${cur}) ) return ;; + versions) + local opts=$([[ "${COMP_WORDS[*]}" =~ "--compact" ]] || echo "--compact") + COMPREPLY=( $(compgen -W "$opts" -- ${cur}) ) + return + ;; esac fi diff --git a/Library/Contributions/manpages/brew.1.md b/Library/Contributions/manpages/brew.1.md index 2293b60f6..66fb3eb41 100644 --- a/Library/Contributions/manpages/brew.1.md +++ b/Library/Contributions/manpages/brew.1.md @@ -272,10 +272,13 @@ For the full command list, see the COMMANDS section. If `--installed` is passed, only list installed formulae. - * `versions` <formulae>: + * `versions [--compact]` <formulae>: List previous versions of <formulae>, along with a command to checkout each version. + If `--compact` is passed, show all options on a single line separated by + spaces. + * `--cache`: Display Homebrew's download cache. *Default:* `~/Library/Caches/Homebrew` diff --git a/Library/Homebrew/cmd/versions.rb b/Library/Homebrew/cmd/versions.rb index bd234d843..906fc4f8c 100644 --- a/Library/Homebrew/cmd/versions.rb +++ b/Library/Homebrew/cmd/versions.rb @@ -5,11 +5,15 @@ module Homebrew extend self raise "Please `brew install git` first" unless system "/usr/bin/which -s git" ARGV.formulae.all? do |f| - f.versions do |version, sha| - print Tty.white - print "#{version.ljust(8)} " - print Tty.reset - puts "git checkout #{sha} #{f.pretty_relative_path}" + if ARGV.include? '--compact' + puts f.versions * " " + else + f.versions do |version, sha| + print Tty.white + print "#{version.ljust(8)} " + print Tty.reset + puts "git checkout #{sha} #{f.pretty_relative_path}" + end end end end @@ -55,14 +59,10 @@ class Formula end def version_for_sha sha - begin - version = mktemp do - path = Pathname.new(Pathname.pwd+"#{name}.rb") - path.write text_from_sha(sha) - Formula.factory(path).version - end - rescue - opoo "Version of #{name} could not be determined for #{sha}." - end + mktemp do + path = Pathname.new(Pathname.pwd+"#{name}.rb") + path.write text_from_sha(sha) + Formula.factory(path).version + end rescue nil end end |
