2026-06-06 14:30:50 +00:00
|
|
|
param(
|
|
|
|
|
[string]$Version = $env:VERSION
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if (-not $Version) {
|
|
|
|
|
Write-Error "Provide -Version or set VERSION env var, e.g. VERSION=0.1.0"
|
|
|
|
|
exit 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$Version = $Version.TrimStart('v')
|
|
|
|
|
|
2026-06-06 14:35:04 +00:00
|
|
|
$GITEA_BASE = "https://repos.gmgauthier.com/gmgauthier/gralculator"
|
2026-06-06 14:30:50 +00:00
|
|
|
|
|
|
|
|
$OS = if ($IsWindows) { "windows" } elseif ($IsMacOS) { "darwin" } else { "linux" }
|
|
|
|
|
$ARCH = if ([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq "X64") { "amd64" } else { "arm64" }
|
|
|
|
|
|
|
|
|
|
$ASSET = "gralculator-$OS-$ARCH-v$Version.tar.gz"
|
|
|
|
|
|
|
|
|
|
Write-Host "Installing gralculator $Version for $OS/$ARCH..."
|
|
|
|
|
|
|
|
|
|
$tempDir = New-TemporaryFile | % { rm $_; mkdir $_ }
|
|
|
|
|
try {
|
|
|
|
|
Push-Location $tempDir
|
|
|
|
|
|
|
|
|
|
Write-Host "Downloading $ASSET..."
|
|
|
|
|
Invoke-WebRequest -Uri "$GITEA_BASE/releases/download/v$Version/$ASSET" -OutFile "asset.tar.gz"
|
|
|
|
|
|
|
|
|
|
Write-Host "Downloading checksums.txt..."
|
|
|
|
|
Invoke-WebRequest -Uri "$GITEA_BASE/releases/download/v$Version/checksums.txt" -OutFile "checksums.txt"
|
|
|
|
|
|
|
|
|
|
# Extract (tar on Windows via tar if available, or 7z, but assume tar in modern PS)
|
|
|
|
|
Write-Host "Extracting..."
|
|
|
|
|
tar -xzf asset.tar.gz
|
|
|
|
|
|
|
|
|
|
$binary = "gralculator-$OS-$ARCH"
|
|
|
|
|
if ($OS -eq "windows") { $binary += ".exe" }
|
|
|
|
|
|
|
|
|
|
$installDir = "$HOME\.local\bin"
|
|
|
|
|
New-Item -ItemType Directory -Force -Path $installDir | Out-Null
|
|
|
|
|
|
|
|
|
|
Move-Item -Force $binary "$installDir\gralculator.exe" -ErrorAction SilentlyContinue
|
|
|
|
|
Move-Item -Force $binary "$installDir\gralculator" -ErrorAction SilentlyContinue
|
|
|
|
|
|
|
|
|
|
Write-Host "✅ gralculator $Version installed to $installDir\gralculator"
|
|
|
|
|
& "$installDir\gralculator" -v
|
|
|
|
|
} finally {
|
|
|
|
|
Pop-Location
|
|
|
|
|
Remove-Item -Recurse -Force $tempDir -ErrorAction SilentlyContinue
|
|
|
|
|
}
|