| 
									
										
										
										
											2016-04-08 16:28:43 +02:00
										 |  |  | #:  * `leaves`: | 
					
						
							|  |  |  | #:    Show installed formulae that are not dependencies of another installed formula. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  | require "formula" | 
					
						
							|  |  |  | require "tab" | 
					
						
							|  |  |  | require "set" | 
					
						
							| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 22:41:47 -05:00
										 |  |  | module Homebrew | 
					
						
							| 
									
										
										
										
											2016-09-26 01:44:51 +02:00
										 |  |  |   module_function | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  |   def leaves | 
					
						
							|  |  |  |     installed = Formula.installed | 
					
						
							|  |  |  |     deps_of_installed = Set.new | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     installed.each do |f| | 
					
						
							|  |  |  |       deps = [] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       f.deps.each do |dep| | 
					
						
							|  |  |  |         if dep.optional? || dep.recommended? | 
					
						
							| 
									
										
										
										
											2016-07-17 18:18:41 +08:00
										 |  |  |           deps << dep.to_formula.full_name if f.build.with?(dep) | 
					
						
							| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  |         else | 
					
						
							| 
									
										
										
										
											2015-05-27 21:03:59 +08:00
										 |  |  |           deps << dep.to_formula.full_name | 
					
						
							| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       deps_of_installed.merge(deps) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     installed.each do |f| | 
					
						
							| 
									
										
										
										
											2015-05-27 21:03:59 +08:00
										 |  |  |       puts f.full_name unless deps_of_installed.include? f.full_name | 
					
						
							| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |