Skip to content

Commit

Permalink
FIX: Extract zip win
Browse files Browse the repository at this point in the history
Related to #819

Changes include:
- Fixing ExtractToDirectory call by removing third attribute.
This function accepts a third argument but it should be of
type 'System.Text.Encoding' not 'System.Boolean'
- Reordering extract utils to first attemps
ExtractToDirectory and then Expand-Archive. For some
reason the download CPython release was not correctly
handled by Expand-Archive. This could be happening if the
zip file was compressed using an unsupported
compression method (e.g. through `zip` with Unix/linux).
  • Loading branch information
SMoraisAnsys committed Feb 29, 2024
1 parent 871daa9 commit 606bed9
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions dist/setup/index.js
Expand Up @@ -9861,7 +9861,7 @@ function extractZipWin(file, dest) {
const pwshCommand = [
`$ErrorActionPreference = 'Stop' ;`,
`try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;`,
`try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`,
`try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}') }`,
`catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;`
].join(' ');
const args = [
Expand All @@ -9877,11 +9877,12 @@ function extractZipWin(file, dest) {
yield exec_1.exec(`"${pwshPath}"`, args);
}
else {
//attempt to use pwsh with ExtractToDirectory, if this fails attempt Expand-Archive
const powershellCommand = [
`$ErrorActionPreference = 'Stop' ;`,
`try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;`,
`if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force }`,
`else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`
`try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}') }`,
`catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;`
].join(' ');
const args = [
'-NoLogo',
Expand Down

0 comments on commit 606bed9

Please sign in to comment.