extend/pathname: use Java.overridable_java_home_env in write_jar_script
This commit is contained in:
		
							parent
							
								
									c244e992af
								
							
						
					
					
						commit
						cd0c3fa835
					
				@ -5,7 +5,8 @@ module Language
 | 
			
		||||
    class << self
 | 
			
		||||
      module Compat
 | 
			
		||||
        def java_home_cmd(version = nil)
 | 
			
		||||
          odeprecated "Language::Java::java_home_cmd", "Language::Java::java_home"
 | 
			
		||||
          odeprecated "Language::Java.java_home_cmd",
 | 
			
		||||
                      "Language::Java.java_home or Language::Java.overridable_java_home_env"
 | 
			
		||||
 | 
			
		||||
          # macOS provides /usr/libexec/java_home, but Linux does not.
 | 
			
		||||
          return system_java_home_cmd(version) if OS.mac?
 | 
			
		||||
 | 
			
		||||
@ -18,12 +18,12 @@ module Language
 | 
			
		||||
      Pathname.new path if path.present?
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # @private
 | 
			
		||||
    def self.java_home_shell(version = nil)
 | 
			
		||||
      f = find_openjdk_formula(version)
 | 
			
		||||
      return (f.opt_libexec/"openjdk.jdk/Contents/Home").to_s if f
 | 
			
		||||
 | 
			
		||||
      "$(#{system_java_home_cmd(version)})"
 | 
			
		||||
    end
 | 
			
		||||
    private_class_method :java_home_shell
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -374,12 +374,8 @@ class Pathname
 | 
			
		||||
 | 
			
		||||
  # Writes an exec script that invokes a Java jar
 | 
			
		||||
  def write_jar_script(target_jar, script_name, java_opts = "", java_version: nil)
 | 
			
		||||
    mkpath
 | 
			
		||||
    java_home = ("JAVA_HOME=\"#{Language::Java.java_home_shell(java_version)}\" " if java_version)
 | 
			
		||||
    join(script_name).write <<~SH
 | 
			
		||||
      #!/bin/bash
 | 
			
		||||
      #{java_home}exec java #{java_opts} -jar #{target_jar} "$@"
 | 
			
		||||
    SH
 | 
			
		||||
    (self/script_name).write_env_script "java", "#{java_opts} -jar \"#{target_jar}\"",
 | 
			
		||||
                                        Language::Java.overridable_java_home_env(java_version)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def install_metafiles(from = Pathname.pwd)
 | 
			
		||||
 | 
			
		||||
@ -33,10 +33,10 @@ module Language
 | 
			
		||||
      req.java_home
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # @private
 | 
			
		||||
    def self.java_home_shell(version = nil)
 | 
			
		||||
      java_home(version).to_s
 | 
			
		||||
    end
 | 
			
		||||
    private_class_method :java_home_shell
 | 
			
		||||
 | 
			
		||||
    def self.java_home_env(version = nil)
 | 
			
		||||
      { JAVA_HOME: java_home_shell(version) }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user