commands: support list all commands without header

This commit is contained in:
Xu Cheng 2015-07-09 19:50:53 +08:00
parent 609af678fd
commit a2d9d68591
3 changed files with 35 additions and 20 deletions

View File

@ -1,24 +1,33 @@
module Homebrew
def commands
# Find commands in Homebrew/cmd
with_directory = false
cmds = (HOMEBREW_REPOSITORY/"Library/Homebrew/cmd").
children(with_directory).
map {|f| File.basename(f, '.rb')}
puts "Built-in commands"
puts_columns cmds
if ARGV.include? "--quiet"
cmds = internal_commands + external_commands
cmds += HOMEBREW_INTERNAL_COMMAND_ALIASES.keys if ARGV.include? "--include-aliases"
puts_columns cmds.sort
else
# Find commands in Homebrew/cmd
puts "Built-in commands"
puts_columns internal_commands
# Find commands in the path
exts = paths.map{ |p| Dir["#{p}/*"] }.flatten.
map{ |f| File.basename f }.
select{ |f| f =~ /^brew-(.+)/ }.
map{ |f| File.basename(f, '.rb')[5..-1] }.
reject{ |f| f =~ /\./ }
unless exts.empty?
puts
puts "External commands"
puts_columns exts
# Find commands in the path
unless (exts = external_commands).empty?
puts
puts "External commands"
puts_columns exts
end
end
end
def internal_commands
with_directory = false
(HOMEBREW_REPOSITORY/"Library/Homebrew/cmd").
children(with_directory).
map {|f| File.basename(f, '.rb')}
end
def external_commands
paths.map{ |p| Dir["#{p}/brew-*"] }.flatten.
map{ |f| File.basename(f, '.rb')[5..-1] }.
reject{ |f| f =~ /\./ }
end
end

View File

@ -75,9 +75,12 @@ Note that these flags should only appear after a command.
* `command` <cmd>:
Display the path to the file which is used when invoking `brew <cmd>`.
* `commands`:
* `commands [--quiet [--include-aliases]]`:
Show a list of built-in and external commands.
If `--quiet` is passed, list only the names of commands without the header.
With `--include-aliases`, the aliases of internal commands will be included.
* `config`:
Show Homebrew and system configuration useful for debugging. If you file
a bug report, you will likely be asked for this information if you do not

View File

@ -80,7 +80,10 @@ If \fB\-s\fR is passed, scrubs the cache, removing downloads for even the latest
\fBcommand\fR \fIcmd\fR: Display the path to the file which is used when invoking \fBbrew <cmd>\fR\.
.
.IP "\(bu" 4
\fBcommands\fR: Show a list of built\-in and external commands\.
\fBcommands [\-\-quiet [\-\-include\-aliases]]\fR: Show a list of built\-in and external commands\.
.
.IP
If \fB\-\-quiet\fR is passed, list only the names of commands without the header\. With \fB\-\-include\-aliases\fR, the aliases of internal commands will be included\.
.
.IP "\(bu" 4
\fBconfig\fR: Show Homebrew and system configuration useful for debugging\. If you file a bug report, you will likely be asked for this information if you do not provide it\.