Merge pull request #10348 from SeekingMeaning/livecheck-actual-version

livecheck: compare actual version for casks
This commit is contained in:
Seeker 2021-01-20 07:44:33 -08:00 committed by GitHub
commit e42e98108b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -149,6 +149,9 @@ module Homebrew
Version.new(formula_or_cask.version)
end
current_str = current.to_s
current = actual_version(formula_or_cask, current)
latest = if formula&.head_only?
formula.head.downloader.fetch_last_commit
else
@ -172,6 +175,9 @@ module Homebrew
latest = Version.new(m[1])
end
latest_str = latest.to_s
latest = actual_version(formula_or_cask, latest)
is_outdated = if formula&.head_only?
# A HEAD-only formula is considered outdated if the latest upstream
# commit hash is different than the installed version's commit hash
@ -186,8 +192,8 @@ module Homebrew
info[:formula] = name if formula
info[:cask] = name if cask
info[:version] = {
current: current.to_s,
latest: latest.to_s,
current: current_str,
latest: latest_str,
outdated: is_outdated,
newer_than_upstream: is_newer_than_upstream,
}
@ -243,6 +249,8 @@ module Homebrew
formula_name(formula_or_cask, full_name: full_name)
when Cask::Cask
cask_name(formula_or_cask, full_name: full_name)
else
T.absurd(formula_or_cask)
end
end
@ -347,6 +355,8 @@ module Homebrew
urls << formula_or_cask.appcast.to_s if formula_or_cask.appcast
urls << formula_or_cask.url.to_s if formula_or_cask.url
urls << formula_or_cask.homepage if formula_or_cask.homepage
else
T.absurd(formula_or_cask)
end
urls.compact
@ -536,7 +546,7 @@ module Homebrew
next if match_version_map.blank?
version_info = {
latest: Version.new(match_version_map.values.max),
latest: Version.new(match_version_map.values.max_by { |v| actual_version(formula_or_cask, v) }),
}
if json && verbose
@ -560,5 +570,17 @@ module Homebrew
nil
end
sig { params(formula_or_cask: T.any(Formula, Cask::Cask), version: Version).returns(Version) }
def actual_version(formula_or_cask, version)
case formula_or_cask
when Formula
version
when Cask::Cask
Version.new(Cask::DSL::Version.new(version.to_s).before_comma)
else
T.absurd(formula_or_cask)
end
end
end
end