cask/audit: Rework tmpdir removal

I previously introduced a finalizer method in `Cask::Audit` to remove
the created `@tmpdir` once it's no longer needed but the existing
approach produces a `finalizer references object to be finalized`
warning when `brew audit` is run. I didn't see this warning when I
was originally testing it but now it reliably appears.

This reworks the finalizer to define it within the
`#extract_artifacts` method and use `@tmpdir` as the target object.
This commit is contained in:
Sam Ford 2024-05-27 13:09:46 -04:00
parent 44d0d64e79
commit e2220ecc42
No known key found for this signature in database
GPG Key ID: 7AF5CBEE1DD6F76D

View File

@ -47,12 +47,6 @@ module Cask
@token_conflicts = token_conflicts
@only = only || []
@except = except || []
# Clean up `#extract_artifacts` tmp dir when Audit object is destroyed
ObjectSpace.define_finalizer(
self,
proc { FileUtils.remove_entry(@tmpdir) if @tmpdir },
)
end
def run!
@ -540,6 +534,12 @@ module Cask
@tmpdir ||= Pathname(Dir.mktmpdir("cask-audit", HOMEBREW_TEMP))
# Clean up tmp dir when @tmpdir object is destroyed
ObjectSpace.define_finalizer(
@tmpdir,
proc { FileUtils.remove_entry(@tmpdir) },
)
ohai "Downloading and extracting artifacts"
downloaded_path = download.fetch