From 5b84ee0195d3c01e8c086754cc14511480f66519 Mon Sep 17 00:00:00 2001 From: Issy Long Date: Tue, 16 Jul 2024 18:11:15 -0400 Subject: [PATCH] utils/tar: Bump to Sorbet `typed: strict` --- Library/Homebrew/utils/tar.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/utils/tar.rb b/Library/Homebrew/utils/tar.rb index bf4df5e664..dd1dca89dc 100644 --- a/Library/Homebrew/utils/tar.rb +++ b/Library/Homebrew/utils/tar.rb @@ -1,4 +1,4 @@ -# typed: true +# typed: strict # frozen_string_literal: true require "system_command" @@ -11,18 +11,21 @@ module Utils TAR_FILE_EXTENSIONS = %w[.tar .tb2 .tbz .tbz2 .tgz .tlz .txz .tZ].freeze + sig { returns(T::Boolean) } def available? executable.present? end + sig { returns(T.nilable(Pathname)) } def executable return @executable if defined?(@executable) gnu_tar_gtar_path = HOMEBREW_PREFIX/"opt/gnu-tar/bin/gtar" gnu_tar_gtar = gnu_tar_gtar_path if gnu_tar_gtar_path.executable? - @executable = which("gtar") || gnu_tar_gtar || which("tar") + @executable = T.let((which("gtar") || gnu_tar_gtar || which("tar")), T.nilable(Pathname)) end + sig { params(path: T.any(Pathname, String)).void } def validate_file(path) return unless available? @@ -33,6 +36,7 @@ module Utils odie "#{path} is not a valid tar file!" if !status.success? || stdout.blank? end + sig { void } def clear_executable_cache remove_instance_variable(:@executable) if defined?(@executable) end