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 target = Pathname.new(target) # allow pathnames or strings
join(target.basename).write <<~SH join(target.basename).write <<~SH
#!/bin/bash #!/bin/bash
exec "#{target}" "$@" exec "#{Utils.shortened_brew_path(target)}" "$@"
SH SH
end end
end end
@ -381,7 +381,7 @@ class Pathname
dirname.mkpath dirname.mkpath
write <<~SH write <<~SH
#!/bin/bash #!/bin/bash
#{env_export}exec "#{target}" #{args} "$@" #{env_export}exec "#{Utils.shortened_brew_path(target)}" #{args} "$@"
SH SH
end end
@ -410,7 +410,7 @@ class Pathname
mkpath mkpath
(self/script_name).write <<~EOS (self/script_name).write <<~EOS
#!/bin/bash #!/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}" "$@" exec "${JAVA_HOME}/bin/java" #{java_opts} -jar "#{target_jar}" "$@"
EOS EOS
end end

View File

@ -19,6 +19,14 @@ describe Language::Java do
end end
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 before do
allow(Formula).to receive(:[]).and_return(f) allow(Formula).to receive(:[]).and_return(f)
allow(f).to receive(:any_version_installed?).and_return(true) allow(f).to receive(:any_version_installed?).and_return(true)
@ -49,6 +57,18 @@ describe Language::Java do
end end
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 describe "::overridable_java_home_env" do
it "returns java_home path if version specified" do it "returns java_home path if version specified" do
overridable_java_home_env = described_class.overridable_java_home_env("1.8+") 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}}") expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{expected_home}}")
end end
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 end