cask/list: fix artifact list

This commit is contained in:
Sean Molenaar 2020-08-14 23:12:17 +02:00
parent 535e7dc836
commit 5d38cd7296
No known key found for this signature in database
GPG Key ID: 6BF5D8DF0D34FAAE
2 changed files with 14 additions and 6 deletions

View File

@ -1,5 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
require "cask/artifact/relocated"
module Cask module Cask
class Cmd class Cmd
class List < AbstractCommand class List < AbstractCommand
@ -48,17 +50,23 @@ module Cask
elsif versions elsif versions
puts output.map(&method(:format_versioned)) puts output.map(&method(:format_versioned))
elsif !output.empty? && casks.any? elsif !output.empty? && casks.any?
puts output.map(&method(:list_artifacts)) output.map(&method(:list_artifacts))
elsif !output.empty? elsif !output.empty?
puts Formatter.columns(output.map(&:to_s)) puts Formatter.columns(output.map(&:to_s))
end end
end end
def self.list_artifacts(cask) def self.list_artifacts(cask)
cask.artifacts.group_by(&:class).each do |klass, artifacts| cask.artifacts.group_by(&:class).sort_by { |klass, _| klass.english_name }.each do |klass, artifacts|
next unless klass.respond_to?(:english_description) next if [Artifact::Uninstall, Artifact::Zap].include? klass
return "==> #{klass.english_description}", artifacts.map(&:summarize_installed) ohai klass.english_name
artifacts.each do |artifact|
puts artifact.summarize_installed if artifact.respond_to?(:summarize_installed)
next if artifact.respond_to?(:summarize_installed)
puts artifact
end
end end
end end

View File

@ -126,9 +126,9 @@ describe Cask::Cmd::List, :cask do
expect { expect {
described_class.run("local-transmission", "local-caffeine") described_class.run("local-transmission", "local-caffeine")
}.to output(<<~EOS).to_stdout }.to output(<<~EOS).to_stdout
==> Apps ==> App
#{transmission.config.appdir.join("Transmission.app")} (#{transmission.config.appdir.join("Transmission.app").abv}) #{transmission.config.appdir.join("Transmission.app")} (#{transmission.config.appdir.join("Transmission.app").abv})
==> Apps ==> App
Missing App: #{caffeine.config.appdir.join("Caffeine.app")} Missing App: #{caffeine.config.appdir.join("Caffeine.app")}
EOS EOS
end end