mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
35 lines
1.1 KiB
Ruby
35 lines
1.1 KiB
Ruby
![]() |
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||
|
# frozen_string_literal: true
|
||
|
|
||
|
module Homebrew
|
||
|
module Bundle
|
||
|
module Checker
|
||
|
class MacAppStoreChecker < Homebrew::Bundle::Checker::Base
|
||
|
PACKAGE_TYPE = :mas
|
||
|
PACKAGE_TYPE_NAME = "App"
|
||
|
|
||
|
def installed_and_up_to_date?(id, no_upgrade: false)
|
||
|
Homebrew::Bundle::MacAppStoreInstaller.app_id_installed_and_up_to_date?(id, no_upgrade:)
|
||
|
end
|
||
|
|
||
|
def format_checkable(entries)
|
||
|
checkable_entries(entries).to_h { |e| [e.options[:id], e.name] }
|
||
|
end
|
||
|
|
||
|
def exit_early_check(app_ids_with_names, no_upgrade:)
|
||
|
work_to_be_done = app_ids_with_names.find do |id, _name|
|
||
|
!installed_and_up_to_date?(id, no_upgrade:)
|
||
|
end
|
||
|
|
||
|
Array(work_to_be_done)
|
||
|
end
|
||
|
|
||
|
def full_check(app_ids_with_names, no_upgrade:)
|
||
|
app_ids_with_names.reject { |id, _name| installed_and_up_to_date?(id, no_upgrade:) }
|
||
|
.map { |_id, name| failure_reason(name, no_upgrade:) }
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|