| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  | module Language | 
					
						
							|  |  |  |   module Java | 
					
						
							| 
									
										
										
										
											2020-06-10 15:11:56 +01:00
										 |  |  |     def self.system_java_home_cmd(version = nil) | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |       version_flag = " --version #{version}" if version | 
					
						
							| 
									
										
										
										
											2020-06-10 16:10:33 +01:00
										 |  |  |       "/usr/libexec/java_home#{version_flag} --failfast 2>/dev/null" | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2020-06-10 15:11:56 +01:00
										 |  |  |     private_class_method :system_java_home_cmd | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def self.java_home(version = nil) | 
					
						
							| 
									
										
										
										
											2020-06-10 16:10:33 +01:00
										 |  |  |       f = find_openjdk_formula(version) | 
					
						
							|  |  |  |       return f.opt_libexec/"openjdk.jdk/Contents/Home" if f | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-10 15:11:56 +01:00
										 |  |  |       cmd = system_java_home_cmd(version) | 
					
						
							| 
									
										
										
										
											2020-06-10 16:10:33 +01:00
										 |  |  |       path = Utils.popen_read(cmd).chomp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       Pathname.new path if path.present? | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def self.java_home_shell(version = nil) | 
					
						
							| 
									
										
										
										
											2020-06-10 16:10:33 +01:00
										 |  |  |       f = find_openjdk_formula(version) | 
					
						
							|  |  |  |       return (f.opt_libexec/"openjdk.jdk/Contents/Home").to_s if f | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-10 15:11:56 +01:00
										 |  |  |       "$(#{system_java_home_cmd(version)})" | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2020-06-10 16:11:04 +01:00
										 |  |  |     private_class_method :java_home_shell | 
					
						
							| 
									
										
										
										
											2018-11-27 11:52:30 -08:00
										 |  |  |   end | 
					
						
							|  |  |  | end |