formula: add any_installed_version

This commit is contained in:
Seeker 2020-08-31 10:59:27 -07:00
parent 5def0701ba
commit f366280e18
5 changed files with 25 additions and 4 deletions

View File

@ -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.

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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