Use .tar.gz files where available for faster win install (#171)

This commit is contained in:
Ian Butterworth
2023-11-21 10:35:55 -05:00
committed by GitHub
parent 8a5ee44838
commit 56e107761d
2 changed files with 25 additions and 14 deletions

20
lib/installer.js generated
View File

@@ -126,9 +126,9 @@ function getDesiredFileExts() {
let hasFileExt2;
let fileExt2;
if (osPlat == 'win32') {
fileExt1 = 'exe';
hasFileExt2 = false;
fileExt2 = '';
fileExt1 = 'tar.gz';
hasFileExt2 = true;
fileExt2 = 'exe';
}
else if (osPlat == 'darwin') {
fileExt1 = 'tar.gz';
@@ -251,12 +251,18 @@ function installJulia(versionInfo, version, arch) {
yield exec.exec('tar', ['xf', juliaDownloadPath, '--strip-components=1', '-C', tempInstallDir]);
return tempInstallDir;
case 'win32':
if (version.endsWith('nightly') || semver.gtr(version, '1.3', { includePrerelease: true })) {
// The installer changed in 1.4: https://github.com/JuliaLang/julia/blob/ef0c9108b12f3ae177c51037934351ffa703b0b5/NEWS.md#build-system-changes
yield exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/SILENT /dir=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`]);
if (fileInfo !== null && fileInfo.extension == 'exe') {
if (version.endsWith('nightly') || semver.gtr(version, '1.3', { includePrerelease: true })) {
// The installer changed in 1.4: https://github.com/JuliaLang/julia/blob/ef0c9108b12f3ae177c51037934351ffa703b0b5/NEWS.md#build-system-changes
yield exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/SILENT /dir=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`]);
}
else {
yield exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/S /D=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`]);
}
}
else {
yield exec.exec('powershell', ['-Command', `Start-Process -FilePath ${juliaDownloadPath} -ArgumentList "/S /D=${path.join(process.cwd(), tempInstallDir)}" -NoNewWindow -Wait`]);
// This is the more common path. Using .tar.gz is much faster
yield exec.exec('powershell', ['-Command', `tar xf ${juliaDownloadPath} --strip-components=1 -C ${tempInstallDir}`]);
}
return tempInstallDir;
case 'darwin':