Shaun Jackman e8b22690a0 Fix Language::Java::java_home_env for Linux
/usr/libexec/java_home is specific to macOS.
Language::Java::java_home_cmd is not implemented on Linux and raises
NotImplementedError.

Add private Language::Java::java_home_shell and use it instead of java_home_cmd.
Add public Language::Java::java_home for use by formulae.
2018-11-29 12:50:31 -08:00

30 lines
722 B
Ruby

module Language
module Java
def self.java_home_cmd(_ = nil)
# macOS provides /usr/libexec/java_home, but Linux does not.
raise NotImplementedError
end
def self.java_home(version = nil)
req = JavaRequirement.new [*version]
raise UnsatisfiedRequirements, req.message unless req.satisfied?
req.java_home
end
# @private
def self.java_home_shell(version = nil)
java_home(version).to_s
end
def self.java_home_env(version = nil)
{ JAVA_HOME: java_home_shell(version) }
end
def self.overridable_java_home_env(version = nil)
{ JAVA_HOME: "${JAVA_HOME:-#{java_home_shell(version)}}" }
end
end
end
require "extend/os/language/java"