class Travis::CLI::Cache
def caches
def caches @caches ||= drop? ? repository.delete_caches(params) : repository.caches(params) end
def check_caches
def check_caches return if caches.any? say "no caches found" exit end
def description
def description description = color("all caches", :important) description << " on branch #{color(branch, :important)}" if branch? description << " that match #{color(match, :important)}" if match? description end
def display_branch(name, list)
def display_branch(name, list) say color(name ? "On branch #{name}:" : "Global:", :important) list.each { |c| display_cache(c) } puts end
def display_cache(cache)
def display_cache(cache) say [ color(cache.slug.ljust(space), :bold), "last modified: " << formatter.time(cache.last_modified), "size: " << formatter.file_size(cache.size) ].join(" ") << "\n" end
def drop?
def drop? return false unless delete? return true if force? error "not deleting caches without --force" unless interactive? error "aborted" unless danger_zone? "Do you really want to delete #{description}?" true end
def params
def params params = {} params[:branch] = branch if branch? params[:match] = match if match? params end
def run
def run error "not allowed to access caches for #{color(repository.slug, :bold)}" unless repository.push? branches = caches.group_by(&:branch) check_caches warn "Deleted the following caches:\n" if delete? branches.each { |name, list| display_branch(name, list) } size = caches.inject(0) { |s,c| s + c.size } say "Overall size of above caches: " << formatter.file_size(size) end
def space
def space @space ||= caches.map(&:slug).map(&:size).max end