diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index cda32afd64..5dad52493e 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -219,8 +219,7 @@ module Homebrew end opoo msg if msg elsif !f.any_version_installed? && old_formula = f.old_installed_formulae.first - installed_version = old_formula.any_installed_keg.version - msg = "#{old_formula.full_name} #{installed_version} already installed" + msg = "#{old_formula.full_name} #{old_formula.any_installed_version} already installed" if !old_formula.linked? && !old_formula.keg_only? msg = <<~EOS #{msg}, it's just not linked. diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 10ea1bcc78..fbbd55fd96 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -1625,6 +1625,10 @@ class Formula end end + def any_installed_version + any_installed_keg&.version + end + # Returns a list of Dependency objects that are required at runtime. # @private def runtime_dependencies(read_from_tab: true, undeclared: true) diff --git a/Library/Homebrew/language/java.rb b/Library/Homebrew/language/java.rb index b8293e0474..fb9b7b0119 100644 --- a/Library/Homebrew/language/java.rb +++ b/Library/Homebrew/language/java.rb @@ -14,7 +14,7 @@ module Language next false unless f.any_version_installed? unless version.zero? - major = f.any_installed_keg.version.major + major = f.any_installed_version.major next false if major < version next false if major > version && !can_be_newer end diff --git a/Library/Homebrew/livecheck/livecheck.rb b/Library/Homebrew/livecheck/livecheck.rb index 92d9b22ed7..d94bce7d8e 100644 --- a/Library/Homebrew/livecheck/livecheck.rb +++ b/Library/Homebrew/livecheck/livecheck.rb @@ -81,7 +81,7 @@ module Homebrew formula.head.downloader.shutup! if formula.head? current = if formula.head? - formula.any_installed_keg.version.version.commit + formula.any_installed_version.version.commit else formula.version end diff --git a/Library/Homebrew/test/formula_spec.rb b/Library/Homebrew/test/formula_spec.rb index 265846e025..82ef571953 100644 --- a/Library/Homebrew/test/formula_spec.rb +++ b/Library/Homebrew/test/formula_spec.rb @@ -1344,4 +1344,22 @@ describe Formula do end end end + + describe "#any_installed_version" do + let(:f) do + Class.new(Testball) do + version "1.0" + revision 1 + end.new + end + + it "returns nil when not installed" do + expect(f.any_installed_version).to be nil + end + + it "returns package version when installed" do + f.brew { f.install } + expect(f.any_installed_version).to eq(PkgVersion.parse("1.0_1")) + end + end end