Publish curated ForgeFlow source from 2ed1787c0b52
This commit is contained in:
commit
f60b269686
254 files changed
+46204
No files matched your search
@@ -0,0 +1,35 @@
|
||||
$ErrorActionPreference = "Stop"
|
||||
Set-StrictMode -Version Latest
|
||||
Set-Location $PSScriptRoot
|
||||
|
||||
function Assert-Command {
|
||||
param([Parameter(Mandatory = $true)][string]$Name)
|
||||
if (-not (Get-Command $Name -ErrorAction SilentlyContinue)) { throw "Required command '$Name' was not found on PATH." }
|
||||
}
|
||||
function Invoke-Step {
|
||||
param([Parameter(Mandatory = $true)][string]$Title, [Parameter(Mandatory = $true)][scriptblock]$Action)
|
||||
Write-Host "`n$Title" -ForegroundColor Yellow
|
||||
& $Action
|
||||
if ($LASTEXITCODE -ne 0) { throw "$Title failed with exit code $LASTEXITCODE." }
|
||||
}
|
||||
|
||||
$package = Get-Content ".\package.json" -Raw | ConvertFrom-Json
|
||||
$version = [string]$package.version
|
||||
if ($package.name -ne "forgeflow" -or [string]::IsNullOrWhiteSpace($version)) { throw "This folder is not a valid ForgeFlow source release." }
|
||||
|
||||
Write-Host "ForgeFlow v$version source update" -ForegroundColor Cyan
|
||||
Write-Host "Your Gitea token, repository mappings and deployment profiles are stored outside this source folder and are not reset." -ForegroundColor DarkGray
|
||||
Assert-Command node
|
||||
Assert-Command npm
|
||||
Assert-Command git
|
||||
|
||||
Invoke-Step "Installing exact project dependencies..." {
|
||||
if (-not (Test-Path ".\package-lock.json")) { throw "package-lock.json is required for a reproducible ForgeFlow update." }
|
||||
npm ci --no-audit --no-fund
|
||||
}
|
||||
Invoke-Step "Running the environment doctor..." { npm run doctor }
|
||||
Invoke-Step "Running source verification and automated tests..." { npm run check }
|
||||
|
||||
Write-Host "`nForgeFlow v$version is ready." -ForegroundColor Green
|
||||
Write-Host "Starting ForgeFlow with your existing local configuration..." -ForegroundColor Green
|
||||
npm start
|
||||
Reference in new issue
Block a user