Files
MijnBesluit/tools/Uitroller-publiceren.ps1
T
2026-09-27 14:21:31 +00:00

61 lines
2.7 KiB
PowerShell

<#
.SYNOPSIS
Publiceert MijnBesluit.Uitroller (het venster op je eigen pc) naar D:\MijnBesluitTools\pc,
met behoud van je eigen instellingen en geheimen.
.DESCRIPTION
D:\publish is van de uitrolPAKKETTEN (de zip's voor site/socketserver/apk) en blijft daarvoor
gereserveerd. De uitroller zelf krijgt, net als RenH.Uitroller met D:\RenHTools, zijn eigen map:
D:\MijnBesluitTools\pc\ - de exe en alles wat dotnet publish neerzet
D:\MijnBesluitTools\uitroller.json - server, geheim, projectmap, testadres, enz.
D:\MijnBesluitTools\uitroller.secrets.json - het Gitea-token (los bestand, buiten git)
De twee bestanden hierboven staan een map BOVEN de exe, dus een publish (die alleen de
pc-submap ververst) kan ze niet wissen - dat is precies waarom Instellingen.cs en
Uitrollergeheimen.cs ze daar zoeken (net als RenH.Uitroller bij D:\RenHTools).
.EXAMPLE
cd D:\MijnBesluit
.\tools\Uitroller-publiceren.ps1
#>
[CmdletBinding()]
param(
[string] $Doel = 'D:\MijnBesluitTools'
)
$ErrorActionPreference = 'Stop'
$Projectmap = Split-Path $PSScriptRoot -Parent
$Pcmap = Join-Path $Doel 'pc'
New-Item -ItemType Directory -Force -Path $Doel | Out-Null
New-Item -ItemType Directory -Force -Path $Pcmap | Out-Null
Write-Host ''
Write-Host "MijnBesluit.Uitroller -> $Pcmap" -ForegroundColor Cyan
dotnet publish (Join-Path $Projectmap 'src\MijnBesluit.Uitroller') -c Release -o $Pcmap --nologo
if ($LASTEXITCODE -ne 0) { throw 'Publiceren van MijnBesluit.Uitroller is mislukt.' }
# uitroller.json en uitroller.secrets.json staan in $Doel zelf (een map boven de exe) en worden
# door dotnet publish dus niet aangeraakt - alleen $Pcmap wordt ververst. Bestaat
# uitroller.secrets.json daar nog nergens (eerste keer publiceren), dan hier een lege maar
# geldige versie neerzetten, anders moet je 'm de eerste keer met de hand aanmaken voordat de
# Gitea-knoppen iets kunnen.
$geheimenPad = Join-Path $Doel 'uitroller.secrets.json'
if (-not (Test-Path $geheimenPad)) {
Set-Content -Path $geheimenPad -Value "{`n `"Gitea`": { `"Token`": `"`" }`n}`n" -NoNewline -Encoding UTF8
Write-Host " uitroller.secrets.json aangemaakt (leeg) - vul je Gitea-token in op:" -ForegroundColor Yellow
Write-Host " $geheimenPad" -ForegroundColor Yellow
}
$instellingenPad = Join-Path $Doel 'uitroller.json'
if (-not (Test-Path $instellingenPad)) {
Write-Host " Let op: er staat nog geen uitroller.json in $Doel." -ForegroundColor Yellow
Write-Host " Bij de eerste start kopieert het venster 'm zelf over vanuit $Pcmap." -ForegroundColor Yellow
}
Write-Host ''
Write-Host 'Klaar.' -ForegroundColor Green
Write-Host " $Pcmap\MijnBesluit.Uitroller.exe"
Write-Host ''