formula: simplify outdated_versions logic
This commit is contained in:
parent
d47df68cbd
commit
9c15174e3c
@ -956,33 +956,25 @@ class Formula
|
|||||||
@oldname_lock.unlock unless @oldname_lock.nil?
|
@oldname_lock.unlock unless @oldname_lock.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def migration_needed?
|
||||||
|
oldname && !rack.exist? && (dir = HOMEBREW_CELLAR/oldname).directory? &&
|
||||||
|
!dir.subdirs.empty? && tap == Tab.for_keg(dir.subdirs.first).tap
|
||||||
|
end
|
||||||
|
|
||||||
# @private
|
# @private
|
||||||
def outdated_versions
|
def outdated_versions
|
||||||
@outdated_versions ||= begin
|
@outdated_versions ||= begin
|
||||||
all_versions = []
|
all_versions = []
|
||||||
older_or_same_tap_versions = []
|
|
||||||
|
|
||||||
if oldname && !rack.exist? && (dir = HOMEBREW_CELLAR/oldname).directory? &&
|
raise Migrator::MigrationNeededError.new(self) if migration_needed?
|
||||||
!dir.subdirs.empty? && tap == Tab.for_keg(dir.subdirs.first).tap
|
|
||||||
raise Migrator::MigrationNeededError.new(self)
|
|
||||||
end
|
|
||||||
|
|
||||||
installed_kegs.each do |keg|
|
installed_kegs.each do |keg|
|
||||||
version = keg.version
|
version = keg.version
|
||||||
all_versions << version
|
all_versions << version
|
||||||
older_version = pkg_version <= version
|
return [] if pkg_version <= version
|
||||||
|
|
||||||
tab_tap = Tab.for_keg(keg).tap
|
|
||||||
if tab_tap.nil? || tab_tap == tap || older_version
|
|
||||||
older_or_same_tap_versions << version
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if older_or_same_tap_versions.all? { |v| pkg_version > v }
|
|
||||||
all_versions.sort!
|
all_versions.sort!
|
||||||
else
|
|
||||||
[]
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user