| 
									
										
										
										
											2016-04-08 16:28:43 +02:00
										 |  |  | #:  * `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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 22:41:47 -05:00
										 |  |  | module Homebrew | 
					
						
							| 
									
										
										
										
											2013-09-14 16:58:26 -07:00
										 |  |  |   def commands | 
					
						
							| 
									
										
										
										
											2015-07-09 19:50:53 +08:00
										 |  |  |     if ARGV.include? "--quiet" | 
					
						
							|  |  |  |       cmds = internal_commands + external_commands | 
					
						
							| 
									
										
										
										
											2015-09-12 19:24:41 +08:00
										 |  |  |       cmds += internal_development_commands if ARGV.homebrew_developer? | 
					
						
							| 
									
										
										
										
											2015-07-09 19:50:53 +08:00
										 |  |  |       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 | 
					
						
							| 
									
										
										
										
											2013-09-14 16:58:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-12 19:24:41 +08:00
										 |  |  |       # Find commands in Homebrew/dev-cmd | 
					
						
							|  |  |  |       if ARGV.homebrew_developer? | 
					
						
							|  |  |  |         puts | 
					
						
							|  |  |  |         puts "Built-in development commands" | 
					
						
							|  |  |  |         puts_columns internal_development_commands | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-09 19:50:53 +08:00
										 |  |  |       # Find commands in the path | 
					
						
							|  |  |  |       unless (exts = external_commands).empty? | 
					
						
							|  |  |  |         puts | 
					
						
							|  |  |  |         puts "External commands" | 
					
						
							|  |  |  |         puts_columns exts | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2013-09-14 16:58:26 -07:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2015-07-09 19:50:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def internal_commands | 
					
						
							| 
									
										
										
										
											2016-01-18 00:55:50 +01:00
										 |  |  |     find_internal_commands HOMEBREW_LIBRARY_PATH/"cmd" | 
					
						
							| 
									
										
										
										
											2015-09-12 19:24:41 +08:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def internal_development_commands | 
					
						
							| 
									
										
										
										
											2016-01-18 00:55:50 +01:00
										 |  |  |     find_internal_commands HOMEBREW_LIBRARY_PATH/"dev-cmd" | 
					
						
							| 
									
										
										
										
											2015-07-09 19:50:53 +08:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def external_commands | 
					
						
							| 
									
										
										
										
											2016-01-18 00:55:50 +01:00
										 |  |  |     paths.reduce([]) do |cmds, path| | 
					
						
							|  |  |  |       Dir["#{path}/brew-*"].each do |file| | 
					
						
							|  |  |  |         next unless File.executable?(file) | 
					
						
							|  |  |  |         cmd = File.basename(file, ".rb")[5..-1] | 
					
						
							|  |  |  |         cmds << cmd unless cmd.include?(".") | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |       cmds | 
					
						
							|  |  |  |     end.sort | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   private | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def find_internal_commands(directory) | 
					
						
							|  |  |  |     directory.children.reduce([]) do |cmds, f| | 
					
						
							|  |  |  |       cmds << f.basename.to_s.sub(/\.(?:rb|sh)$/, "") if f.file? | 
					
						
							|  |  |  |       cmds | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2015-07-09 19:50:53 +08:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-09-14 16:58:26 -07:00
										 |  |  | end |