aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Vandenberg2013-09-14 16:58:26 -0700
committerAdam Vandenberg2013-09-17 06:44:25 -0700
commit5b77eaf15f1276bbafdea8081acd6e4905ca30d1 (patch)
tree74eca6c739f58ce1d5660f9d29f7ef184b7bc64a
parent4c2cee38dfe682c7375facc5bcf0e28c467e47df (diff)
downloadhomebrew-5b77eaf15f1276bbafdea8081acd6e4905ca30d1.tar.bz2
brew commands
Shows a list of built-in commands (but not shortcuts) and searches for any external commands on the path. Closes #22509.
-rw-r--r--Library/Contributions/brew_bash_completion.sh1
-rw-r--r--Library/Contributions/brew_zsh_completion.zsh1
-rw-r--r--Library/Contributions/manpages/brew.1.md3
-rw-r--r--Library/Homebrew/cmd/commands.rb33
-rw-r--r--share/man/man1/brew.14
5 files changed, 42 insertions, 0 deletions
diff --git a/Library/Contributions/brew_bash_completion.sh b/Library/Contributions/brew_bash_completion.sh
index 28a57c6c5..c55b78925 100644
--- a/Library/Contributions/brew_bash_completion.sh
+++ b/Library/Contributions/brew_bash_completion.sh
@@ -403,6 +403,7 @@ _brew ()
audit
cat
cleanup
+ commands
create
deps
diy configure
diff --git a/Library/Contributions/brew_zsh_completion.zsh b/Library/Contributions/brew_zsh_completion.zsh
index e497cd11e..878a3f9d3 100644
--- a/Library/Contributions/brew_zsh_completion.zsh
+++ b/Library/Contributions/brew_zsh_completion.zsh
@@ -27,6 +27,7 @@ _1st_arguments=(
'audit:check formulae for Homebrew coding style'
'cat:display formula file for a formula'
'cleanup:uninstall unused and old versions of packages'
+ 'commands:show a list of commands'
'create:create a new formula'
'deps:list dependencies and dependants of a formula'
'doctor:audits your installation for common issues'
diff --git a/Library/Contributions/manpages/brew.1.md b/Library/Contributions/manpages/brew.1.md
index 0e3c11584..e2b94821e 100644
--- a/Library/Contributions/manpages/brew.1.md
+++ b/Library/Contributions/manpages/brew.1.md
@@ -64,6 +64,9 @@ Note that these flags should only appear after a command.
versions of formula. Note downloads for any installed formula will still not be
deleted. If you want to delete those too: `rm -rf $(brew --cache)`
+ * `commands`:
+ Show a list of built-in and external commands.
+
* `create <URL> [--autotools|--cmake] [--no-fetch] [--set-name <name>] [--set-version <version>]`:
Generate a formula for the downloadable file at <URL> and open it in the editor.
Homebrew will attempt to automatically derive the formula name
diff --git a/Library/Homebrew/cmd/commands.rb b/Library/Homebrew/cmd/commands.rb
new file mode 100644
index 000000000..b9bbb12ec
--- /dev/null
+++ b/Library/Homebrew/cmd/commands.rb
@@ -0,0 +1,33 @@
+module Homebrew extend self
+ def paths
+ @paths ||= ENV['PATH'].split(File::PATH_SEPARATOR).collect do |p|
+ begin
+ File.expand_path(p).chomp('/')
+ rescue ArgumentError
+ onoe "The following PATH component is invalid: #{p}"
+ end
+ end.uniq.compact
+ end
+
+ def commands
+ # Find commands in Homebrew/cmd
+ cmds = (HOMEBREW_REPOSITORY/"Library/Homebrew/cmd").
+ children(with_directory=false).
+ map {|f| File.basename(f, '.rb')}
+ puts "Built-in commands"
+ puts_columns cmds
+
+ # 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
+ end
+ end
+end
diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1
index 94d8473b6..1f81c74c7 100644
--- a/share/man/man1/brew.1
+++ b/share/man/man1/brew.1
@@ -71,6 +71,10 @@ If \fB\-n\fR is passed, show what would be removed, but do not actually remove a
If \fB\-s\fR is passed, scrubs the cache, removing downloads for even the latest versions of formula\. Note downloads for any installed formula will still not be deleted\. If you want to delete those too: \fBrm \-rf $(brew \-\-cache)\fR
.
.TP
+\fBcommands\fR
+Show a list of built\-in and external commands\.
+.
+.TP
\fBcreate <URL> [\-\-autotools|\-\-cmake] [\-\-no\-fetch] [\-\-set\-name <name>] [\-\-set\-version <version>]\fR
Generate a formula for the downloadable file at \fIURL\fR and open it in the editor\. Homebrew will attempt to automatically derive the formula name and version, but if it fails, you\'ll have to make your own template\. The wget formula serves as a simple example\. For a complete cheat\-sheet, have a look at
.