mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

/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.
30 lines
722 B
Ruby
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"
|