livecheck: compare actual version for casks
This commit is contained in:
parent
8869208a60
commit
94a33b1d2e
@ -149,6 +149,9 @@ module Homebrew
|
|||||||
Version.new(formula_or_cask.version)
|
Version.new(formula_or_cask.version)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
current_str = current.to_s
|
||||||
|
current = actual_version(formula_or_cask, current)
|
||||||
|
|
||||||
latest = if formula&.head_only?
|
latest = if formula&.head_only?
|
||||||
formula.head.downloader.fetch_last_commit
|
formula.head.downloader.fetch_last_commit
|
||||||
else
|
else
|
||||||
@ -172,6 +175,9 @@ module Homebrew
|
|||||||
latest = Version.new(m[1])
|
latest = Version.new(m[1])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
latest_str = latest.to_s
|
||||||
|
latest = actual_version(formula_or_cask, latest)
|
||||||
|
|
||||||
is_outdated = if formula&.head_only?
|
is_outdated = if formula&.head_only?
|
||||||
# A HEAD-only formula is considered outdated if the latest upstream
|
# A HEAD-only formula is considered outdated if the latest upstream
|
||||||
# commit hash is different than the installed version's commit hash
|
# commit hash is different than the installed version's commit hash
|
||||||
@ -186,8 +192,8 @@ module Homebrew
|
|||||||
info[:formula] = name if formula
|
info[:formula] = name if formula
|
||||||
info[:cask] = name if cask
|
info[:cask] = name if cask
|
||||||
info[:version] = {
|
info[:version] = {
|
||||||
current: current.to_s,
|
current: current_str,
|
||||||
latest: latest.to_s,
|
latest: latest_str,
|
||||||
outdated: is_outdated,
|
outdated: is_outdated,
|
||||||
newer_than_upstream: is_newer_than_upstream,
|
newer_than_upstream: is_newer_than_upstream,
|
||||||
}
|
}
|
||||||
@ -243,6 +249,8 @@ module Homebrew
|
|||||||
formula_name(formula_or_cask, full_name: full_name)
|
formula_name(formula_or_cask, full_name: full_name)
|
||||||
when Cask::Cask
|
when Cask::Cask
|
||||||
cask_name(formula_or_cask, full_name: full_name)
|
cask_name(formula_or_cask, full_name: full_name)
|
||||||
|
else
|
||||||
|
T.absurd(formula_or_cask)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -347,6 +355,8 @@ module Homebrew
|
|||||||
urls << formula_or_cask.appcast.to_s if formula_or_cask.appcast
|
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.url.to_s if formula_or_cask.url
|
||||||
urls << formula_or_cask.homepage if formula_or_cask.homepage
|
urls << formula_or_cask.homepage if formula_or_cask.homepage
|
||||||
|
else
|
||||||
|
T.absurd(formula_or_cask)
|
||||||
end
|
end
|
||||||
|
|
||||||
urls.compact
|
urls.compact
|
||||||
@ -536,7 +546,7 @@ module Homebrew
|
|||||||
next if match_version_map.blank?
|
next if match_version_map.blank?
|
||||||
|
|
||||||
version_info = {
|
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
|
if json && verbose
|
||||||
@ -560,5 +570,17 @@ module Homebrew
|
|||||||
|
|
||||||
nil
|
nil
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user