feat(core,tooling): Windows support — shell selection, install.ps1, win-x64 release package, Windows CI (#79)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c23f0bc2f0
commit
c369e089a7
46 files changed
+1315
-217
No files matched your search
@@ -0,0 +1,33 @@
|
||||
# https://penguin.ooo/install.ps1 - PenguinHarness installer entry point for Windows.
|
||||
#
|
||||
# GitHub Pages cannot serve HTTP redirects, so this thin forwarder IS the
|
||||
# stable install URL: it fetches the real installer attached to the latest
|
||||
# GitHub release and runs it, forwarding every argument it was given. Usage:
|
||||
#
|
||||
# irm https://penguin.ooo/install.ps1 | iex
|
||||
# & ([scriptblock]::Create((irm https://penguin.ooo/install.ps1))) -Version v0.2.0
|
||||
#
|
||||
$ErrorActionPreference = "Stop"
|
||||
$ProgressPreference = "SilentlyContinue"
|
||||
try {
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
|
||||
} catch {
|
||||
# .NET builds where the enum is immutable already default to TLS 1.2+.
|
||||
}
|
||||
# Download fully first, then run: executing a piped stream directly would run a
|
||||
# truncated download line by line, and the real installer moves the old
|
||||
# bin/lib/web/node aside before moving the new ones in - a cut connection
|
||||
# mid-way must never leave a half-executed installer. The installer runs as an
|
||||
# in-memory script block (not a script file): script files are subject to the
|
||||
# execution policy, which is Restricted by default on client Windows - while the
|
||||
# user has already consented to remote code by piping this forwarder into iex.
|
||||
# Neither this forwarder nor the installer calls `exit`, which in iex/script-block
|
||||
# context would terminate the user's whole PowerShell session.
|
||||
$Tmp = Join-Path ([IO.Path]::GetTempPath()) "penguin-install-$PID.ps1"
|
||||
try {
|
||||
Invoke-WebRequest -Uri "https://github.com/Prism-Shadow/penguin-harness/releases/latest/download/install.ps1" -OutFile $Tmp -UseBasicParsing
|
||||
$Installer = [scriptblock]::Create((Get-Content -Path $Tmp -Raw))
|
||||
& $Installer @args
|
||||
} finally {
|
||||
Remove-Item -Force $Tmp -ErrorAction SilentlyContinue
|
||||
}
|
||||
Reference in new issue
Block a user