| 
									
										
										
										
											2010-09-25 12:49:09 +01:00
										 |  |  | require 'formula' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-27 22:40:59 -06:00
										 |  |  | def recursive_deps_tree f, level | 
					
						
							|  |  |  |   f.deps.each do |dep| | 
					
						
							| 
									
										
										
										
											2012-04-11 18:24:46 -05:00
										 |  |  |     puts "> "*level+dep.to_s | 
					
						
							| 
									
										
										
										
											2011-11-27 22:40:59 -06:00
										 |  |  |     recursive_deps_tree(Formula.factory(dep), level+1) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  | module Homebrew extend self | 
					
						
							|  |  |  |   def deps | 
					
						
							| 
									
										
										
										
											2010-09-25 12:49:09 +01:00
										 |  |  |     if ARGV.include? '--all' | 
					
						
							|  |  |  |       Formula.each do |f| | 
					
						
							| 
									
										
										
										
											2011-06-15 09:02:18 -07:00
										 |  |  |         puts "#{f.name}: #{f.deps*' '}" | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2011-11-27 22:40:59 -06:00
										 |  |  |     elsif ARGV.include? '--tree' | 
					
						
							| 
									
										
										
										
											2012-02-04 00:01:29 -06:00
										 |  |  |       raise FormulaUnspecifiedError if ARGV.named.empty? | 
					
						
							| 
									
										
										
										
											2011-11-27 22:40:59 -06:00
										 |  |  |       ARGV.formulae.each do |f| | 
					
						
							|  |  |  |         puts f | 
					
						
							|  |  |  |         recursive_deps_tree(f, 1) | 
					
						
							|  |  |  |         puts | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |     else | 
					
						
							| 
									
										
										
										
											2012-02-04 00:01:29 -06:00
										 |  |  |       raise FormulaUnspecifiedError if ARGV.named.empty? | 
					
						
							| 
									
										
										
										
											2011-04-13 13:10:25 -07:00
										 |  |  |       all_deps = ARGV.formulae.map{ |f| ARGV.one? ? f.deps : f.recursive_deps }.intersection | 
					
						
							|  |  |  |       all_deps.sort! unless ARGV.include? "-n" | 
					
						
							|  |  |  |       puts all_deps | 
					
						
							| 
									
										
										
										
											2010-09-11 20:22:54 +01:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2010-09-25 12:49:09 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Array | 
					
						
							|  |  |  |   def intersection | 
					
						
							|  |  |  |     a = [] | 
					
						
							|  |  |  |     each{ |b| a |= b } | 
					
						
							|  |  |  |     each{ |c| a &= c } | 
					
						
							|  |  |  |     a | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |