@@ -21,14 +21,14 @@ class Installer
2121 skip_cask_deps : T ::Boolean , binaries : T ::Boolean , verbose : T ::Boolean , zap : T ::Boolean ,
2222 require_sha : T ::Boolean , upgrade : T ::Boolean , reinstall : T ::Boolean , installed_as_dependency : T ::Boolean ,
2323 installed_on_request : T ::Boolean , quarantine : T ::Boolean , verify_download_integrity : T ::Boolean ,
24- quiet : T ::Boolean
24+ quiet : T ::Boolean , download_queue : T . nilable ( Homebrew :: DownloadQueue )
2525 ) . void
2626 }
2727 def initialize ( cask , command : SystemCommand , force : false , adopt : false ,
2828 skip_cask_deps : false , binaries : true , verbose : false ,
2929 zap : false , require_sha : false , upgrade : false , reinstall : false ,
3030 installed_as_dependency : false , installed_on_request : true ,
31- quarantine : true , verify_download_integrity : true , quiet : false )
31+ quarantine : true , verify_download_integrity : true , quiet : false , download_queue : nil )
3232 @cask = cask
3333 @command = command
3434 @force = force
@@ -45,6 +45,7 @@ def initialize(cask, command: SystemCommand, force: false, adopt: false,
4545 @quarantine = quarantine
4646 @verify_download_integrity = verify_download_integrity
4747 @quiet = quiet
48+ @download_queue = download_queue
4849 end
4950
5051 sig { returns ( T ::Boolean ) }
@@ -104,14 +105,14 @@ def self.caveats(cask)
104105 def fetch ( quiet : nil , timeout : nil )
105106 odebug "Cask::Installer#fetch"
106107
107- load_cask_from_source_api! if @cask . loaded_from_api? && @cask . caskfile_only ?
108+ load_cask_from_source_api! if cask_from_source_api ?
108109 verify_has_sha if require_sha? && !force?
109110 check_requirements
110111
111112 forbidden_tap_check
112113 forbidden_cask_and_formula_check
113114
114- download ( quiet :, timeout :)
115+ download ( quiet :, timeout :) if @download_queue . nil?
115116
116117 satisfy_cask_and_formula_dependencies
117118 end
@@ -790,9 +791,20 @@ def forbidden_cask_and_formula_check
790791 )
791792 end
792793
794+ sig { void }
795+ def enqueue_downloads
796+ download_queue = @download_queue
797+ return if download_queue . nil?
798+
799+ Homebrew ::API ::Cask . source_download ( @cask , download_queue :) if cask_from_source_api?
800+
801+ download_queue . enqueue ( downloader )
802+ end
803+
793804 private
794805
795806 # load the same cask file that was used for installation, if possible
807+ sig { void }
796808 def load_installed_caskfile!
797809 Migrator . migrate_if_needed ( @cask )
798810
@@ -807,12 +819,18 @@ def load_installed_caskfile!
807819 end
808820 end
809821
810- load_cask_from_source_api! if @cask . loaded_from_api? && @cask . caskfile_only ?
822+ load_cask_from_source_api! if cask_from_source_api ?
811823 # otherwise we default to the current cask
812824 end
813825
826+ sig { void }
814827 def load_cask_from_source_api!
815- @cask = Homebrew ::API ::Cask . source_download ( @cask )
828+ @cask = Homebrew ::API ::Cask . source_download_cask ( @cask )
829+ end
830+
831+ sig { returns ( T ::Boolean ) }
832+ def cask_from_source_api?
833+ @cask . loaded_from_api? && @cask . caskfile_only?
816834 end
817835 end
818836end
0 commit comments