Merge pull request #18423 from Homebrew/caveats-strict
caveats: `typed: strict`
This commit is contained in:
		
						commit
						9ce39ee03e
					
				@ -1,4 +1,4 @@
 | 
			
		||||
# typed: true # rubocop:todo Sorbet/StrictSigil
 | 
			
		||||
# typed: strict
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require "language/python"
 | 
			
		||||
@ -8,12 +8,15 @@ require "utils/service"
 | 
			
		||||
class Caveats
 | 
			
		||||
  extend Forwardable
 | 
			
		||||
 | 
			
		||||
  sig { returns(Formula) }
 | 
			
		||||
  attr_reader :formula
 | 
			
		||||
 | 
			
		||||
  sig { params(formula: Formula).void }
 | 
			
		||||
  def initialize(formula)
 | 
			
		||||
    @formula = formula
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { returns(String) }
 | 
			
		||||
  def caveats
 | 
			
		||||
    caveats = []
 | 
			
		||||
    begin
 | 
			
		||||
@ -46,6 +49,7 @@ class Caveats
 | 
			
		||||
 | 
			
		||||
  delegate [:empty?, :to_s] => :caveats
 | 
			
		||||
 | 
			
		||||
  sig { params(skip_reason: T::Boolean).returns(T.nilable(String)) }
 | 
			
		||||
  def keg_only_text(skip_reason: false)
 | 
			
		||||
    return unless formula.keg_only?
 | 
			
		||||
 | 
			
		||||
@ -99,16 +103,18 @@ class Caveats
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  sig { returns(T.nilable(Keg)) }
 | 
			
		||||
  def keg
 | 
			
		||||
    @keg ||= [formula.prefix, formula.opt_prefix, formula.linked_keg].filter_map do |d|
 | 
			
		||||
    @keg ||= T.let([formula.prefix, formula.opt_prefix, formula.linked_keg].filter_map do |d|
 | 
			
		||||
      Keg.new(d.resolved_path)
 | 
			
		||||
    rescue
 | 
			
		||||
      nil
 | 
			
		||||
    end.first
 | 
			
		||||
    end.first, T.nilable(Keg))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { params(shell: Symbol).returns(T.nilable(String)) }
 | 
			
		||||
  def function_completion_caveats(shell)
 | 
			
		||||
    return unless keg
 | 
			
		||||
    return unless (keg = self.keg)
 | 
			
		||||
    return unless which(shell.to_s, ORIGINAL_PATHS)
 | 
			
		||||
 | 
			
		||||
    completion_installed = keg.completion_installed?(shell)
 | 
			
		||||
@ -140,9 +146,10 @@ class Caveats
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { returns(T.nilable(String)) }
 | 
			
		||||
  def elisp_caveats
 | 
			
		||||
    return if formula.keg_only?
 | 
			
		||||
    return unless keg
 | 
			
		||||
    return unless (keg = self.keg)
 | 
			
		||||
    return unless keg.elisp_installed?
 | 
			
		||||
 | 
			
		||||
    <<~EOS
 | 
			
		||||
@ -151,6 +158,7 @@ class Caveats
 | 
			
		||||
    EOS
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  sig { returns(T.nilable(String)) }
 | 
			
		||||
  def service_caveats
 | 
			
		||||
    return if !formula.service? && !Utils::Service.installed?(formula) && !keg&.plist_installed?
 | 
			
		||||
    return if formula.service? && !formula.service.command? && !Utils::Service.installed?(formula)
 | 
			
		||||
 | 
			
		||||
@ -89,7 +89,7 @@ module Homebrew
 | 
			
		||||
              caveats = Caveats.new(formula)
 | 
			
		||||
              opoo <<~EOS
 | 
			
		||||
                Refusing to link macOS provided/shadowed software: #{keg.name}
 | 
			
		||||
                #{caveats.keg_only_text(skip_reason: true).strip}
 | 
			
		||||
                #{T.must(caveats.keg_only_text(skip_reason: true)).strip}
 | 
			
		||||
              EOS
 | 
			
		||||
              next
 | 
			
		||||
            end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user