Merge pull request #20327 from Homebrew/download_queue_source_download
formula*: add source download support for download queue.
This commit is contained in:
		
						commit
						fe0a9c4a3d
					
				@ -28,8 +28,8 @@ module Homebrew
 | 
			
		||||
        Homebrew::API.fetch "formula/#{name}.json"
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      sig { params(formula: ::Formula).returns(::Formula) }
 | 
			
		||||
      def self.source_download(formula)
 | 
			
		||||
      sig { params(formula: ::Formula, download_queue: T.nilable(Homebrew::DownloadQueue)).returns(Homebrew::API::SourceDownload) }
 | 
			
		||||
      def self.source_download(formula, download_queue: nil)
 | 
			
		||||
        path = formula.ruby_source_path || "Formula/#{formula.name}.rb"
 | 
			
		||||
        git_head = formula.tap_git_head || "HEAD"
 | 
			
		||||
        tap = formula.tap&.full_name || "Homebrew/homebrew-core"
 | 
			
		||||
@ -39,7 +39,19 @@ module Homebrew
 | 
			
		||||
          formula.ruby_source_checksum,
 | 
			
		||||
          cache: HOMEBREW_CACHE_API_SOURCE/"#{tap}/#{git_head}/Formula",
 | 
			
		||||
        )
 | 
			
		||||
        download.fetch
 | 
			
		||||
 | 
			
		||||
        if download_queue
 | 
			
		||||
          download_queue.enqueue(download)
 | 
			
		||||
        elsif !download.cache.exist?
 | 
			
		||||
          download.fetch
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        download
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      sig { params(formula: ::Formula).returns(::Formula) }
 | 
			
		||||
      def self.source_download_formula(formula)
 | 
			
		||||
        download = source_download(formula)
 | 
			
		||||
 | 
			
		||||
        with_env(HOMEBREW_FORBID_PACKAGES_FROM_PATHS: nil) do
 | 
			
		||||
          Formulary.factory(download.symlink_location,
 | 
			
		||||
 | 
			
		||||
@ -317,8 +317,12 @@ class FormulaInstaller
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Needs to be done before expand_dependencies for compute_dependencies
 | 
			
		||||
    fetch_bottle_tab if pour_bottle?
 | 
			
		||||
    if pour_bottle?
 | 
			
		||||
      # Needs to be done before expand_dependencies for compute_dependencies
 | 
			
		||||
      fetch_bottle_tab
 | 
			
		||||
    elsif formula.loaded_from_api?
 | 
			
		||||
      Homebrew::API::Formula.source_download(formula, download_queue:)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    fetch_fetch_deps unless ignore_deps?
 | 
			
		||||
 | 
			
		||||
@ -1446,7 +1450,7 @@ on_request: installed_on_request?, options:)
 | 
			
		||||
 | 
			
		||||
      !downloadable_object.cached_download.exist?
 | 
			
		||||
    else
 | 
			
		||||
      @formula = Homebrew::API::Formula.source_download(formula) if formula.loaded_from_api?
 | 
			
		||||
      @formula = Homebrew::API::Formula.source_download_formula(formula) if formula.loaded_from_api?
 | 
			
		||||
 | 
			
		||||
      if (download_queue = self.download_queue)
 | 
			
		||||
        formula.enqueue_resources_and_patches(download_queue:)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user