aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorAdam Vandenberg2013-09-14 16:58:26 -0700
committerAdam Vandenberg2013-09-17 06:44:25 -0700
commitfa0872a42c388f81fac1d65e130462de6da3977b (patch)
tree710e193dec857f1befbf8162bc016de76c6a709f /Library
parent7c0f474d26e961fd08bf097b6c676375570720f8 (diff)
downloadbrew-fa0872a42c388f81fac1d65e130462de6da3977b.tar.bz2
brew commands
Shows a list of built-in commands (but not shortcuts) and searches for any external commands on the path. Closes Homebrew/homebrew#22509.
Diffstat (limited to 'Library')
-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
4 files changed, 38 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