bastion agent 0.1.14
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# bastion agent installer — Windows (PowerShell 5+). No admin, no downloads.
|
||||
# powershell -ExecutionPolicy Bypass -File install.ps1 dist\bastion-agent-0.1.0.pyz
|
||||
# Puts bastion-agent.cmd in %LOCALAPPDATA%\bastion-agent and runs the preflight.
|
||||
param([Parameter(Mandatory = $true)][string]$Pyz)
|
||||
$ErrorActionPreference = "Stop"
|
||||
$py = Get-Command python -ErrorAction SilentlyContinue
|
||||
if (-not $py) { $py = Get-Command py -ErrorAction SilentlyContinue }
|
||||
if (-not $py) { Write-Error "Python 3.8+ is required (python.org or the Store); none on PATH"; exit 1 }
|
||||
& $py.Source -c "import sys; sys.exit(0 if sys.version_info >= (3, 8) else 1)"
|
||||
if ($LASTEXITCODE -ne 0) { Write-Error "Python is older than 3.8"; exit 1 }
|
||||
if (Test-Path "$Pyz.sha256") {
|
||||
$want = (Get-Content "$Pyz.sha256").Split(" ")[0].ToLower()
|
||||
$have = (Get-FileHash -Algorithm SHA256 $Pyz).Hash.ToLower()
|
||||
if ($want -ne $have) { Write-Error "checksum MISMATCH - refusing to install"; exit 1 }
|
||||
Write-Host "checksum ok"
|
||||
}
|
||||
$dir = Join-Path $env:LOCALAPPDATA "bastion-agent"
|
||||
New-Item -ItemType Directory -Force -Path $dir | Out-Null
|
||||
Copy-Item $Pyz (Join-Path $dir "bastion-agent.pyz") -Force
|
||||
$cmd = Join-Path $dir "bastion-agent.cmd"
|
||||
"@echo off`r`n`"$($py.Source)`" `"$dir\bastion-agent.pyz`" %*`r`n" | Set-Content -Path $cmd -Encoding ASCII
|
||||
Write-Host "installed $cmd"
|
||||
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
|
||||
if ($userPath -notlike "*$dir*") {
|
||||
[Environment]::SetEnvironmentVariable("Path", "$userPath;$dir", "User")
|
||||
Write-Host "added $dir to your user PATH (open a new terminal)"
|
||||
}
|
||||
& $cmd --version
|
||||
& $cmd doctor
|
||||
Write-Host ""
|
||||
Write-Host "next: put your manifest at %APPDATA%\bastion-agent\manifest.yaml, set FREEAGENT_OWNER_RECIPIENT"
|
||||
Write-Host " (age-keygen), then: bastion-agent sweep %APPDATA%\bastion-agent\manifest.yaml --once"
|
||||
Reference in New Issue
Block a user