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