diff --git a/Library/Homebrew/cask/download.rb b/Library/Homebrew/cask/download.rb index e2f43bf526..30efff34fe 100644 --- a/Library/Homebrew/cask/download.rb +++ b/Library/Homebrew/cask/download.rb @@ -52,6 +52,10 @@ module Cask downloader.cached_location end + def basename + downloader.basename + end + def verify_download_integrity(fn) if @cask.sha256 == :no_check opoo "No checksum defined for cask '#{@cask}', skipping verification." diff --git a/Library/Homebrew/cask/installer.rb b/Library/Homebrew/cask/installer.rb index a3cf058dec..318cb045ba 100644 --- a/Library/Homebrew/cask/installer.rb +++ b/Library/Homebrew/cask/installer.rb @@ -152,10 +152,14 @@ module Cask s.freeze end + sig { returns(Download) } + def downloader + @downloader ||= Download.new(@cask, quarantine: quarantine?) + end + sig { returns(Pathname) } def download - @download ||= Download.new(@cask, quarantine: quarantine?) - .fetch(verify_download_integrity: @verify_download_integrity) + @download ||= downloader.fetch(verify_download_integrity: @verify_download_integrity) end def verify_has_sha @@ -180,7 +184,7 @@ module Cask odebug "Using container class #{primary_container.class} for #{primary_container.path}" - basename = CGI.unescape(File.basename(@cask.url.path)) + basename = downloader.basename if nested_container = @cask.container&.nested Dir.mktmpdir do |tmpdir|