uses: Print cask uses

This commit is contained in:
William Ma 2020-07-30 12:59:01 -04:00
parent 8d97029b03
commit 7be2b943cb
3 changed files with 50 additions and 38 deletions

View File

@ -110,16 +110,6 @@ module Homebrew
puts all_deps puts all_deps
end end
def dependents(formulae_or_casks)
formulae_or_casks.map do |formula_or_cask|
if formula_or_cask.is_a?(Formula)
formula_or_cask
else
CaskDependent.new(formula_or_cask)
end
end
end
def sorted_dependents(formulae_or_casks) def sorted_dependents(formulae_or_casks)
dependents(formulae_or_casks).sort_by(&:name) dependents(formulae_or_casks).sort_by(&:name)
end end

View File

@ -6,6 +6,7 @@
require "formula" require "formula"
require "cli/parser" require "cli/parser"
require "cask/caskroom"
module Homebrew module Homebrew
extend DependenciesHelpers extend DependenciesHelpers
@ -71,17 +72,33 @@ module Homebrew
uses = if use_runtime_dependents && !used_formulae_missing uses = if use_runtime_dependents && !used_formulae_missing
used_formulae.map(&:runtime_installed_formula_dependents) used_formulae.map(&:runtime_installed_formula_dependents)
.reduce(&:&) .reduce(&:&)
.select(&:any_version_installed?) .select(&:any_version_installed?) +
select_used_dependents(dependents(Cask::Caskroom.casks), used_formulae)
else else
formulae = args.installed? ? Formula.installed : Formula deps = if args.installed?
dependents(Formula.installed + Cask::Caskroom.casks)
else
dependents(Formula.to_a + Cask::Cask.to_a)
end
select_used_dependents(deps, used_formulae)
end
return if uses.empty?
puts Formatter.columns(uses.map(&:full_name).sort)
odie "Missing formulae should not have dependents!" if used_formulae_missing
end
def select_used_dependents(dependents, used_formulae)
recursive = args.recursive? recursive = args.recursive?
includes, ignores = argv_includes_ignores(ARGV) includes, ignores = argv_includes_ignores(ARGV)
formulae.select do |f| dependents.select do |d|
deps = if recursive deps = if recursive
recursive_includes(Dependency, f, includes, ignores) recursive_includes(Dependency, d, includes, ignores)
else else
reject_ignores(f.deps, ignores, includes) reject_ignores(d.deps, ignores, includes)
end end
used_formulae.all? do |ff| used_formulae.all? do |ff|
@ -102,10 +119,4 @@ module Homebrew
end end
end end
end end
return if uses.empty?
puts Formatter.columns(uses.map(&:full_name).sort)
odie "Missing formulae should not have dependents!" if used_formulae_missing
end
end end

View File

@ -1,6 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
require "delegate" require "delegate"
require "cask_dependent"
class Dependencies < DelegateClass(Array) class Dependencies < DelegateClass(Array)
def initialize(*args) def initialize(*args)
@ -122,4 +123,14 @@ module DependenciesHelpers
includes.none? { |include| dep.send(include) } includes.none? { |include| dep.send(include) }
end end
end end
def dependents(formulae_or_casks)
formulae_or_casks.map do |formula_or_cask|
if formula_or_cask.is_a?(Formula)
formula_or_cask
else
CaskDependent.new(formula_or_cask)
end
end
end
end end