# Renders the packaging templates (scoop, winget, homebrew, rpm) with the # version and the sha256 of every release archive. # Usage: scripts/render-manifests.ps1 -Version 0.4.1 [-DistDir dist] param( [Parameter(Mandatory = $true)][string]$Version, [string]$DistDir = "dist" ) $ErrorActionPreference = "Stop" function Get-Sha([string]$file) { $p = Join-Path $DistDir $file if (-not (Test-Path $p)) { Write-Warning "missing $p - placeholder 0000... (build it or wait for the CI runner)" return "0000000000000000000000000000000000000000000000000000000000000000" } (Get-FileHash $p -Algorithm SHA256).Hash.ToLower() } $vars = [ordered]@{ "{{VERSION}}" = $Version "{{SHA256_WINDOWS}}" = Get-Sha "am-windows-x86_64.zip" "{{SHA256_LINUX_X86_64}}" = Get-Sha "am-linux-x86_64.tar.gz" "{{SHA256_LINUX_AARCH64}}" = Get-Sha "am-linux-aarch64.tar.gz" "{{SHA256_MACOS_X86_64}}" = Get-Sha "am-macos-x86_64.tar.gz" "{{SHA256_MACOS_AARCH64}}" = Get-Sha "am-macos-aarch64.tar.gz" } $targets = @( @{ Src = "packaging/scoop/am.json"; Dst = "dist/scoop/am.json" }, @{ Src = "packaging/winget/agent-manager.installer.yaml"; Dst = "dist/winget/agent-manager.installer.yaml" }, @{ Src = "packaging/winget/agent-manager.locale.en-US.yaml"; Dst = "dist/winget/agent-manager.locale.en-US.yaml" }, @{ Src = "packaging/winget/agent-manager.yaml"; Dst = "dist/winget/agent-manager.yaml" }, @{ Src = "packaging/homebrew/am.rb"; Dst = "dist/homebrew/am.rb" }, @{ Src = "packaging/rpm/am.spec"; Dst = "dist/rpm/am.spec" } ) foreach ($t in $targets) { $text = Get-Content $t.Src -Raw foreach ($k in $vars.Keys) { $text = $text.Replace($k, $vars[$k]) } New-Item -ItemType Directory -Force (Split-Path $t.Dst) | Out-Null Set-Content -Path $t.Dst -Value $text -NoNewline -Encoding utf8 Write-Host "rendered $($t.Dst)" } Write-Host "" Write-Host "Manifests rendus dans dist/. Puis :" Write-Host " - scoop : scoop install dist/scoop/am.json (ou ajoutez-le a votre bucket)" Write-Host " - winget : soumettez dist/winget/*.yaml a microsoft/winget-pkgs" Write-Host " - homebrew : servez dist/homebrew/am.rb via un tap, ou soumettez a homebrew/core" Write-Host " - rpm : copiez dist/rpm/am.spec + dist/am-linux-x86_64.tar.gz dans ~/rpmbuild/{SPECS,SOURCES} puis rpmbuild -bb" Write-Host " - deb : packaging/deb/make-deb.sh $Version"