Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions vscode-lean4/media/guide-installLean-windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ On newer Windows systems that support the package manager [winget](https://learn
# Install Git using `winget`.
winget install -e --id Git.Git --silent --accept-package-agreements --accept-source-agreements --disable-interactivity
# Download the Elan installation script at https://github.com/leanprover/elan/blob/master/elan-init.ps1 and run it. Elan will be installed to `%USERPROFILE%\.elan`.
Invoke-WebRequest -Uri "https://elan.lean-lang.org/elan-init.ps1" -OutFile "elan-init.ps1"
$installCode = (Invoke-WebRequest -Uri "https://elan.lean-lang.org/elan-init.ps1" -UseBasicParsing -ErrorAction Stop).Content
$installer = [ScriptBlock]::Create([System.Text.Encoding]::UTF8.GetString($installCode))
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
.\elan-init.ps1 -NoPrompt 1 -DefaultToolchain leanprover/lean4:stable
del .\elan-init.ps1
& $installer -NoPrompt 1 -DefaultToolchain ${elanStableChannel}
```

On older Windows systems that do not support the package manager [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), the following script will be executed instead:
Expand All @@ -29,10 +29,10 @@ New-Item -ItemType Directory -Path $installDir -Force
Invoke-WebRequest -Uri $gitInstallerUrl -OutFile $gitInstallerLoc
& $gitInstallerLoc /VERYSILENT /NORESTART /SP-
# Download the Elan installation script at https://github.com/leanprover/elan/blob/master/elan-init.ps1 and run it. Elan will be installed to `%USERPROFILE%\.elan`.
Invoke-WebRequest -Uri "https://elan.lean-lang.org/elan-init.ps1" -OutFile "elan-init.ps1"
$installCode = (Invoke-WebRequest -Uri "https://elan.lean-lang.org/elan-init.ps1" -UseBasicParsing -ErrorAction Stop).Content
$installer = [ScriptBlock]::Create([System.Text.Encoding]::UTF8.GetString($installCode))
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
.\elan-init.ps1 -NoPrompt 1 -DefaultToolchain leanprover/lean4:stable
del .\elan-init.ps1
& $installer -NoPrompt 1 -DefaultToolchain ${elanStableChannel}
```

## Restricted Environments
Expand Down
16 changes: 11 additions & 5 deletions vscode-lean4/src/utils/leanInstaller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,17 @@ import {
displayStickyNotificationWithOptionalInput,
} from './notifs'

const windowsInstallationScript = `Invoke-WebRequest -Uri "https://elan.lean-lang.org/elan-init.ps1" -OutFile "elan-init.ps1"
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
$rc = .\\elan-init.ps1 -NoPrompt 1 -DefaultToolchain ${elanStableChannel}
del .\\elan-init.ps1
exit $rc`
const windowsInstallationScript = `try {
$installCode = (Invoke-WebRequest -Uri "https://elan.lean-lang.org/elan-init.ps1" -UseBasicParsing -ErrorAction Stop).Content
$installer = [ScriptBlock]::Create([System.Text.Encoding]::UTF8.GetString($installCode))
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
$rc = & $installer -NoPrompt 1 -DefaultToolchain ${elanStableChannel}
exit $rc
} catch {
Write-Host "Downloading and running the Elan installer failed."
Write-Host $_
exit 1
}`

const unixInstallationScript = `curl "https://elan.lean-lang.org/elan-init.sh" -sSf | sh -s -- -y --default-toolchain ${elanStableChannel}`

Expand Down
Loading