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