extend/pathname: use shortened brew paths

This commit is contained in:
Caleb Xu 2021-06-14 21:37:11 -04:00
parent 318175cfe2
commit e7ab760392
No known key found for this signature in database
GPG Key ID: 2F67B6BC86DC4F00
2 changed files with 35 additions and 3 deletions

View File

@ -365,7 +365,7 @@ class Pathname
target = Pathname.new(target) # allow pathnames or strings
join(target.basename).write <<~SH
#!/bin/bash
exec "#{target}" "$@"
exec "#{Utils.shortened_brew_path(target)}" "$@"
SH
end
end
@ -381,7 +381,7 @@ class Pathname
dirname.mkpath
write <<~SH
#!/bin/bash
#{env_export}exec "#{target}" #{args} "$@"
#{env_export}exec "#{Utils.shortened_brew_path(target)}" #{args} "$@"
SH
end
@ -410,7 +410,7 @@ class Pathname
mkpath
(self/script_name).write <<~EOS
#!/bin/bash
export JAVA_HOME="#{Language::Java.overridable_java_home_env(java_version)[:JAVA_HOME]}"
export JAVA_HOME="#{Language::Java.overridable_short_java_home_env(java_version)[:JAVA_HOME]}"
exec "${JAVA_HOME}/bin/java" #{java_opts} -jar "#{target_jar}" "$@"
EOS
end

View File

@ -19,6 +19,14 @@ describe Language::Java do
end
end
let(:expected_short_home) do
if OS.mac?
"$(brew --prefix)/opt/openjdk/libexec/openjdk.jdk/Contents/Home"
else
"$(brew --prefix)/opt/openjdk/libexec"
end
end
before do
allow(Formula).to receive(:[]).and_return(f)
allow(f).to receive(:any_version_installed?).and_return(true)
@ -49,6 +57,18 @@ describe Language::Java do
end
end
describe "::short_java_home_env" do
it "returns short java_home path if version specified" do
short_java_home_env = described_class.short_java_home_env("1.8+")
expect(short_java_home_env[:JAVA_HOME]).to eql(expected_short_home)
end
it "returns short java_home path if version is not specified" do
short_java_home_env = described_class.short_java_home_env
expect(short_java_home_env[:JAVA_HOME]).to eql(expected_short_home)
end
end
describe "::overridable_java_home_env" do
it "returns java_home path if version specified" do
overridable_java_home_env = described_class.overridable_java_home_env("1.8+")
@ -60,4 +80,16 @@ describe Language::Java do
expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{expected_home}}")
end
end
describe "::overridable_short_java_home_env" do
it "returns short java_home path if version specified" do
overridable_short_java_home_env = described_class.overridable_short_java_home_env("1.8+")
expect(overridable_short_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{expected_short_home}}")
end
it "returns short java_home path if version is not specified" do
overridable_short_java_home_env = described_class.overridable_short_java_home_env
expect(overridable_short_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{expected_short_home}}")
end
end
end