From fa0872a42c388f81fac1d65e130462de6da3977b Mon Sep 17 00:00:00 2001 From: Adam Vandenberg Date: Sat, 14 Sep 2013 16:58:26 -0700 Subject: 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. --- Library/Homebrew/cmd/commands.rb | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Library/Homebrew/cmd/commands.rb (limited to 'Library/Homebrew/cmd/commands.rb') 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 -- cgit v1.2.3