cleanup: refactor cleanup_cache
This commit is contained in:
parent
5b5bb57865
commit
a9fcefda4e
@ -62,21 +62,30 @@ module Homebrew extend self
|
|||||||
|
|
||||||
def cleanup_cache
|
def cleanup_cache
|
||||||
return unless HOMEBREW_CACHE.directory?
|
return unless HOMEBREW_CACHE.directory?
|
||||||
|
|
||||||
HOMEBREW_CACHE.children.select(&:file?).each do |file|
|
HOMEBREW_CACHE.children.select(&:file?).each do |file|
|
||||||
version = file.version
|
version = file.version
|
||||||
name = file.basename.to_s.match(/(.*)-(#{version})/).captures.first rescue nil
|
name = file.basename.to_s.match(/(.*)-(?:#{Regexp.escape(version)})/).captures.first rescue nil
|
||||||
if name and version
|
next unless name && version
|
||||||
f = Formula.factory(name) rescue nil
|
|
||||||
old_bottle = bottle_file_outdated? f, file
|
begin
|
||||||
if (f and f.version > version) or (ARGV.switch? "s" and (f and (not f.installed?))) or old_bottle
|
f = Formula.factory(name)
|
||||||
|
rescue FormulaUnavailableError
|
||||||
|
next
|
||||||
|
end
|
||||||
|
|
||||||
|
if f.version > version || ARGV.switch?('s') && !f.installed? || bottle_file_outdated?(f, file)
|
||||||
|
cleanup_cached_file(file)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def cleanup_cached_file file
|
||||||
if ARGV.dry_run?
|
if ARGV.dry_run?
|
||||||
puts "Would remove: #{file}"
|
puts "Would remove: #{file}"
|
||||||
else
|
else
|
||||||
puts "Removing: #{file}..."
|
puts "Removing: #{file}..."
|
||||||
rm file
|
file.unlink
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user