27 lines
		
	
	
		
			726 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			726 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "utils.rb"
 | |
| 
 | |
| module Language
 | |
|   module Python
 | |
|     def self.major_minor_version python
 | |
|       version = /\d\.\d/.match `#{python} --version 2>&1`
 | |
|       return unless version
 | |
|       Version.new(version.to_s)
 | |
|     end
 | |
| 
 | |
|     def self.each_python build, &block
 | |
|       original_pythonpath = ENV["PYTHONPATH"]
 | |
|       ["python", "python3"].each do |python|
 | |
|         next if build.without? python
 | |
|         version = self.major_minor_version python
 | |
|         ENV["PYTHONPATH"] = if Formula.factory(python).installed?
 | |
|           nil
 | |
|         else
 | |
|           "#{HOMEBREW_PREFIX}/lib/python#{version}/site-packages"
 | |
|         end
 | |
|         block.call python, version if block
 | |
|       end
 | |
|       ENV["PYTHONPATH"] = original_pythonpath
 | |
|     end
 | |
|   end
 | |
| end
 | 
