cask/audit: fix nested container extraction

Fixes edge cases where nested containers are used. Extraction for auditing artifacts did not pull the secondary container, which tried to audit the container instead of the contents.
This commit is contained in:
Justin Krehel 2024-05-29 11:36:32 -04:00
parent d1daf1f7e3
commit 700cbd893b
No known key found for this signature in database
GPG Key ID: 757F1864C8CF3605

View File

@ -549,6 +549,13 @@ module Cask
# Extract the container to the temporary directory.
primary_container.extract_nestedly(to: @tmpdir, basename: downloaded_path.basename, verbose: false)
if (nested_container = @cask.container&.nested)
FileUtils.chmod_R "+rw", @tmpdir/nested_container, force: true, verbose: false
UnpackStrategy.detect(@tmpdir/nested_container, merge_xattrs: true)
.extract_nestedly(to: @tmpdir, verbose: false)
end
@artifacts_extracted = true # Set the flag to indicate that extraction has occurred.
# Yield the artifacts and temp directory to the block if provided.