diff options
| author | Jack Nagel | 2013-05-15 12:45:39 -0500 | 
|---|---|---|
| committer | Jack Nagel | 2013-05-15 12:57:01 -0500 | 
| commit | 243089faf9affd0a40d38e582d3b7949dec915f3 (patch) | |
| tree | 7fe9cd05d4b9e5fa279052876449174ca6b03f2a /Library/Homebrew/cmd/cleanup.rb | |
| parent | 1539d8f598dfeaaf4e573021d10cefc8396e9316 (diff) | |
| download | homebrew-243089faf9affd0a40d38e582d3b7949dec915f3.tar.bz2 | |
cleanup: refactor cleanup_cache
Diffstat (limited to 'Library/Homebrew/cmd/cleanup.rb')
| -rw-r--r-- | Library/Homebrew/cmd/cleanup.rb | 33 | 
1 files changed, 21 insertions, 12 deletions
| diff --git a/Library/Homebrew/cmd/cleanup.rb b/Library/Homebrew/cmd/cleanup.rb index a644fbb41..114ae1f3a 100644 --- a/Library/Homebrew/cmd/cleanup.rb +++ b/Library/Homebrew/cmd/cleanup.rb @@ -62,21 +62,30 @@ module Homebrew extend self    def cleanup_cache      return unless HOMEBREW_CACHE.directory? +      HOMEBREW_CACHE.children.select(&:file?).each do |file|        version = file.version -      name = file.basename.to_s.match(/(.*)-(#{version})/).captures.first rescue nil -      if name and version -        f = Formula.factory(name) rescue nil -        old_bottle = bottle_file_outdated? f, file -        if (f and f.version > version) or (ARGV.switch? "s" and (f and (not f.installed?))) or old_bottle -          if ARGV.dry_run? -            puts "Would remove: #{file}" -          else -            puts "Removing: #{file}..." -            rm file -          end -        end +      name = file.basename.to_s.match(/(.*)-(?:#{Regexp.escape(version)})/).captures.first rescue nil +      next unless name && version + +      begin +        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? +      puts "Would remove: #{file}" +    else +      puts "Removing: #{file}..." +      file.unlink      end    end | 
