aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/commands.rb
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/Homebrew/cmd/commands.rb
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/Homebrew/cmd/commands.rb')
-rw-r--r--Library/Homebrew/cmd/commands.rb33
1 files changed, 33 insertions, 0 deletions
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